生命不息,填坑不止。
由于是中间接手项目,自行npm install之后,进行build过程中报错。但是同事的电脑打包都是正常的,后来也就没有追究。自己打包能正常打包,但是看到如下错误信息,打包出来的文件也能正常使用。就是看着比较郁闷。
报错信息
ERROR in static/js/0.5c379196415ca058222a.js from UglifyJs
TypeError: Cannot read property ‘sections’ of null
爬坑一:element-ui打包和运行报错处理
因为我的项目也是用的element-ui,报错信息差不多,声明原因是出现这样的情况是element-ui组件的js使用的是ES6的语法,打包的时候无法解析,导致UglifyJs报错。提供的解决方案是调整webpack的配置文件
{ test: /\.js$/, loader: 'babel-loader', include: [resolve('src'), resolve('test'),resolve('/node_modules/element-ui/src'),resolve('/node_modules/element-ui/packages')] } 修改之后呢,没什么反应。爬坑失败 爬坑二:有的说是没有babel解析的时候一些新特性没能解析,没有带上 stage-2 那就再.babelrc文件里面增加对应的设置 "presets": [["es2015", { "modules": false }],"stage-2"], 爬坑失败 爬坑三: 仔细分析报错中涉及到的UglifyJs插件,UglifyJs插件是代码压缩的插件,也就是说在语法解析之后,再进行的压缩。于是,再webpack的配置文件中将其屏蔽掉,打包,正常了。 那基本定位是这里的问题了。找到文档:
找到解决方案:
在 webpack.conf.js中,在如下位置增加选项。
new webpack.optimize.UglifyJsPlugin({
sourceMap: true
})
sourceMap 使用 SourceMaps 将错误信息的位置映射到模块。这会减慢编译的速度。
github上项目说明上是解释是 pass an object if you wish to specify source map options.
具体什么意思,没懂。
问题解决,不报错了,具体原因或者其他隐患不清楚。有大牛懂得可以给解读下。
最近拉了网上的开源小程序代码套了个博客小程序,发布上线,有兴趣的同学可以体验下。
另外,关于小程序美团家做了个vue和小程序集合的框架mpvue,回头研究下。