编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

「填坑日记」ERROR in static/js/***.js from UglifyJs

wxchong 2024-07-09 23:46:33 开源技术 12 ℃ 0 评论

生命不息,填坑不止。

由于是中间接手项目,自行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的配置文件中将其屏蔽掉,打包,正常了。

那基本定位是这里的问题了。找到文档:

UglifyjsWebpackPlugin

找到解决方案:

在 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,回头研究下。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表