用gulp uglify压缩后报错s is undefined是怎么回事?
使用原文件是没有任何问题的,使用用gulp压缩后的js就会报这个错误。
gulp配置如下:
gulp.task("bab", function() {
var path = './cdn/public_html/4.0/js/member_activity.js'
var index = path.lastIndexOf("/")
var ToPath = path.slice(0, index);
return gulp.src(path)
.pipe(sourcemaps.init())
.pipe(babel({
presets: ['es2015']
}))
.pipe(uglify(
{
compress:{
drop_console: true, // 过滤 console
drop_debugger: true // 过滤 debugger
}
}
))
.pipe(rename({
extname: '.min.js'
}))
.pipe(sourcemaps.write('./cdn/public_html/4.0/js/map'))
.pipe(gulp.dest('./cdn/public_html/4.0/js'));
})
还想请有经验的大佬指点一下什么情况会导致这种操作。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
压缩时会修改变量名的,比如你有一个变量名很有描述性,但很长,叫
iKnowWhatYouDoInLastSummer
,那么压缩的时候就会尝试把它变成a
,这样就实现了 26 -> 1 的压缩比例。但是你可能有很多文件互相依赖,只压缩其中一个,就会破坏其它文件对它的依赖,就会产生这种“某变量未定义”的问题。(当然也可能是其它问题,不过从你的描述来看,这种问题的可能性比较大)。
解决方案有两个:
mangle:false
(也可能是其它配置项,忘记了,很不常用),不改变量名member_activity.js 是否依赖了其他文件?
如果依赖了. 需要一同打包.
https://www.npmjs.com/package...