在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ 用gulp uglify壓縮后報(bào)錯(cuò)s is undefined是怎么回事?

用gulp uglify壓縮后報(bào)錯(cuò)s is undefined是怎么回事?

使用原文件是沒(méi)有任何問(wèn)題的,使用用gulp壓縮后的js就會(huì)報(bào)這個(gè)錯(cuò)誤。

clipboard.png

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,  // 過(guò)濾 console
                drop_debugger: true  // 過(guò)濾 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'));

})

還想請(qǐng)有經(jīng)驗(yàn)的大佬指點(diǎn)一下什么情況會(huì)導(dǎo)致這種操作。

回答
編輯回答
朕略萌

member_activity.js 是否依賴了其他文件?
如果依賴了. 需要一同打包.

2018年8月5日 01:21
編輯回答
涼心人

壓縮時(shí)會(huì)修改變量名的,比如你有一個(gè)變量名很有描述性,但很長(zhǎng),叫 iKnowWhatYouDoInLastSummer,那么壓縮的時(shí)候就會(huì)嘗試把它變成 a,這樣就實(shí)現(xiàn)了 26 -> 1 的壓縮比例。

但是你可能有很多文件互相依賴,只壓縮其中一個(gè),就會(huì)破壞其它文件對(duì)它的依賴,就會(huì)產(chǎn)生這種“某變量未定義”的問(wèn)題。(當(dāng)然也可能是其它問(wèn)題,不過(guò)從你的描述來(lái)看,這種問(wèn)題的可能性比較大)。

解決方案有兩個(gè):

  1. 使用 webpack 或類似的工具合并 JS,把依賴和被依賴一起改名
  2. 使用 mangle:false(也可能是其它配置項(xiàng),忘記了,很不常用),不改變量名
2018年8月9日 20:17