vue打包发布后提示ReferenceError: exports is not defined
在项目中使用了three.js,three.js支持commonJs写法,导致发布后提示ReferenceError: exports is not defined
解决办法:
执行以下命令添加babel/plugin-transform-modules-commonjs
npm install --save-dev @babel/plugin-transform-modules-commonjs
在babel.config.js 中添加
plugins: [
[
'@babel/plugin-transform-modules-commonjs'
]
]
//或者
plugins: [
[
'@babel/plugin-transform-modules-commonjs',
{
allowTopLevelThis: true
}
]
]
报Uncaught TypeError: Cannot assign to read only property ‘exports’ of object
方式1:用export default 输出
lang.js
const weeks = reuqire('./weeks')
export default {
...weeks,
jan: '1',
feb: '2',
}
配置babelrc
无需更改,只需要配置.babelrc即可,首先下载相应babel插件
npm install babel-plugin-transform-es2015-modules-commonjs -D
在 .babelrc 中增加一个plugins
{
"plugins": ["transform-es2015-modules-commonjs"]
}
在babel.config.js中使用关闭控制输出
npm install babel-plugin-transform-remove-console -D
const plugins = ['@vue/babel-plugin-transform-vue-jsx', '@babel/plugin-transform-modules-commonjs']
// 生产环境移除console
if (process.env.NODE_ENV === 'production') {
plugins.push('transform-remove-console')
}
module.exports = {
plugins:plugins,
presets: [
'@vue/app'
]
}