昨天項目正式完工,今天組長大大讓我把項目build一下部署到服務器上,我心想這有何難,然后就遇到了問題,笑哭~
問題一
問題描述
執(zhí)行yarn build命令后,出現(xiàn)了錯誤:
ERROR in static/js/vendor.5346f984bedbd0ae0e43.js from UglifyJs
Unexpected token: operator (>) [./~/element-ui/src/mixins/emitter.js:2,0][static/js/vendor.5346f984bedbd0ae0e43.js:56667,32]
問題分析
經(jīng)過查閱資料發(fā)現(xiàn),是因為我在項目中引入了element-ui庫,該庫是用es6的語法編寫的,但是瀏覽器并不支持es6的語法,需要轉(zhuǎn)換成es5的語法才能執(zhí)行。
解決問題
找到webpack.base.config.js
文件,做如下修改:
module: {
rules: [
{
test: /\.js$/,
loader: 'babel-loader',
include: [resolve('src'), resolve('test'),
resolve('/node_modules/element-ui/src'), <--新增
resolve('/node_modules/element-ui/packages') <--新增
]
}
]
}
然后就可以build成功了。
問題二
問題描述
build成功后,開熏地叫來組長大大,但是組長大大說,需要把sourceMap去掉,線上環(huán)境不允許有sourceMap存在,可以借此窺探源碼結(jié)構(gòu)。
問題分析
修改prod的環(huán)境配置來設置build生成的文件不含sourceMap。
解決問題
找到config
文件下的index.js
文件,做如下修改:
productionSourceMap: false, //設置不生成sourceMap
然后執(zhí)行一遍yarn build命令發(fā)現(xiàn)sourceMap沒有了,完成任務。