在配置imports-loader时报错了
来源:4-11 Shimming 的作用
一脚一个榴莲
2019-05-05
module:{ // module的作用就是当你要打包某个模块就配置这个模块。如打包图片这个模块,就配置打包图片
rules:[{
test: /\.js$/,
exclude: /node_modules/, // exclude意思是排除。如果是在node_modules里的js文件(因为里面的js文件早就处理成ES5的代码了),就不使用Babel来处理。
use:[
{
loader:'babel-loader' // 使用Babel处理ES6语法
},
{
loader:'imports-loader?this=>window' // 将模块中的this指向window
}
],
//**************************************和老师代码的区别就是没有将下面的配置放在.babelrc文件中,然后我运营npm run dev时就报错了**************************************************
options:{ // babel的opstions如果配置项太多,可以在根目录写一个.babelrc文件(了解就行),并将options所有配置放进去即可。
presets:[ //为babel配置参数preset
['@babel/preset-env'
,{//这个数组的第二个对象参数为preset的配置
useBuiltIns:'usage', // 不把**所有**es6转es5的兼容代码打包到出口文件,只将你写的代码出现的es6语法,将这些es6转es5的兼容代码打包到出口文件,这样打包的文件会小很多。
corejs: 3, // 现在光设置useBuiltIns为usage不行了,还需要设置corejs为3。注意要先安装corejs
}
],
'@babel/preset-react'
],
plugins:['@babel/plugin-syntax-dynamic-import'] // 使用import异步加载时需要用到的插件
}
},]
},
和老师代码的区别就是没有将babel的配置放在.babelrc文件中,然后我运营npm run dev时就报错了
写回答
2回答
-
weixin_慕丝7060995
2020-03-26
这里应该是把options 放在和babel-loader同级的对象里, 我这么写能启动起来
[{
loader: 'babel-loader',
options: {
presets: [['@babel/preset-env', {
targets: {
chrome: '67'
},
corejs: '2',
useBuiltIns: 'usage'
}]],
plugins: ['transform-es2015-modules-commonjs']
}
}, {
loader: 'imports-loader?this=>window'
}]
00 -
Dell
2019-05-06
新版本loader不能加参数了,this=>window你查下imports-loader文档最新的配置方式,需要放到options里了
042020-04-23
相似问题