Web开发 - reactjs打包问题旧js模块问题,roslib,ros2d和createjs(commonJS兼容cmd写法)

reactjs打包问题

引用旧js模块时,无法build成功:

./src/utils/roslib.js
  Line 420:2:    Expected an assignment or function call and instead saw an expression  no-unused-expressions
  Line 1175:39:  'define' is not defined                                                no-undef
  Line 1177:5:   'define' is not defined                                                no-undef
  Line 1584:62:  Unexpected use of 'self'                                               no-restricted-globals
  Line 1584:85:  Unexpected use of 'self'                                               no-restricted-globals
  Line 2300:26:  'io' is not defined                                                    no-undef
  Line 3106:12:  'bson' is not defined   

所以下载源码后决定重新打包一次。
包括roslib、ros2d都是用CommonJS打包的。


解决方案

1、ros2d使用模块化写法,代码打包或者整理后,可以在文件末尾增添:

export default ROS2D

当然同时也要注意修改其中代码使其符合es6规范,可以根据报错提示,在未声明的初次变量前面添加var等等。
工程中引用时:

import ROS2D from '../lib/ros2d.js'

2、roslib使用了commonJS规范,没有办法简单改为export形式。所以在npm下载后,或者下载好源码整理进入工程以后,使用require方法引用:

var ROSLIB  = require('roslib');

请注意除了react工程,原本的ros2d文件中也要这么写。而且所有的require语句必须写在import的语句的下方。

3、同时要注意其他模块的引用。

createjs无法使用import或者require的方式引用。
首先下载别人改好的模块:npm install createjs-cmd,直接引入即可/

import createjs from 'createjs-cmd';

注意

每个js文件一创建,都有一个var exports = module.exports = {},使exports和module.exports都指向一个空对象。 module.exports和exports所指向的内存地址相同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

canmoumou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值