为了账号安全,请及时绑定邮箱和手机立即绑定

webpack external react 时只能使用其全局变量或相对路径怎么办?

webpack external react 时只能使用其全局变量或相对路径怎么办?

紫衣仙女 2019-04-21 20:21:48
我想把react作为externallib从bundle里面分离出来,但是require好像不起作用呢,在配置里起得名字也不好使。只能使用文件的相对路径来require或者干脆不require就行了。可是我想使用cmd模式用require来把它引入怎么办?//配置如下varwebpack=require('webpack');varpath=require('path');varconfig={entry:[path.resolve(__dirname,'scripts/main.js')],output:{path:path.resolve(__dirname,'build'),libraryTarget:"umd",library:'',filename:'bundle.js'},externals:[//第一种写法{"../build/react.min.js":'React'}//第二种写法,这货怎么用的有木有大神教一下--!{"../build/react.min.js":{root:'ReactJS',commonjs:["./ReactJS","ReactJS"],}}],module:{loaders:[{exclude:"scripts/react.min.js",test:/\.js$/,loaders:['babel']}]}};//js如下'usestrict';//第一种配置,下面这句话写不写都不会报错。varReact=require('../build/react.min.js');console.log('main'+1+2);varMain=React.createClass({getInitialState:function(){return{switch:true};},_toggle(){this.setState({switch:!this.state.switch});},render(){return();}});React.render(,document.body);
查看完整描述

2 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

//webpack.config.js
module.exports={
externals:{
'react':'React'
},
//...
}
externals对象的key是给require时用的,比如require('react'),对象的value表示的是如何在global(即window)中访问到该对象,这里是window.React。
同理jquery的话就可以这样写:'jquery':'jQuery',那么require('jquery')即可。
HTML中注意引入顺序即可:
                            
查看完整回答
反对 回复 2019-04-21
?
ibeautiful

TA贡献1993条经验 获得超5个赞

我是这样写的
javascript//webpack.config.js
module.exports={
externals:{
'react':'window.React'
},
//...
}
//main.js
varReact=require('react');
//home.html
                            
查看完整回答
反对 回复 2019-04-21
  • 2 回答
  • 0 关注
  • 278 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信