Javascript 如何防止'gulp uglify'移动我的全局变量?

Javascript 如何防止'gulp uglify'移动我的全局变量?,javascript,node.js,gulp,gulp-uglify,Javascript,Node.js,Gulp,Gulp Uglify,我正在使用gulp设置来模拟生产环境的js代码 我有这样的代码 var test = 1; function getTest(myTest) { if(!myTest) { return test; } return myTest; } 但是,当我运行gulp时,输出变为(为了可读性,我将其保持干净) 如何防止gulp uglify更改顺序或全局变量 我首先连接我的文件,然后是丑陋的 我试图将以下对象传递给uglify,但它仍在改变顺序 uglify({ man

我正在使用gulp设置来模拟生产环境的js代码

我有这样的代码

var test = 1;

function getTest(myTest)
{
   if(!myTest) {
      return test;
   }

  return myTest;
}
但是,当我运行gulp时,输出变为(为了可读性,我将其保持干净)

如何防止
gulp uglify
更改顺序或全局变量

我首先连接我的文件,然后是丑陋的

我试图将以下对象传递给
uglify
,但它仍在改变顺序

uglify({ mangle: false })
uglify({ mangle: { reserved: ['test'] } })
下面是依赖项的列表

  "license": "ISC",
  "devDependencies": {
    "gulp": "^3.9.1",
    "gulp-autoprefixer": "^3.1.1",
    "gulp-concat": "^2.6.0",
    "gulp-debug": "^2.1.2",
    "gulp-ignore": "^2.0.1",
    "gulp-minify-css": "^1.2.4",
    "gulp-sass": "^2.3.2",
    "gulp-sourcemaps": "^1.6.0",
    "gulp-uglify": "^2.0.0",
    "gulp-util": "^3.0.7"
  }
这是我的吞咽任务

gulp.task('compileJs', function () {
        gulp.src(jsFiles['final'])
               .pipe(sourcemaps.init())
               //only uglify if gulp is ran with '--type production'
               .pipe(isProduction() ? uglify() : gutil.noop())
               .pipe(concat('final.js'))
               .pipe(sourcemaps.write())
               .pipe(gulp.dest('./Public/Js'));

});

提升功能
选项设置为
false

.pipe(uglify({
    compress: {
        hoist_funs: false
    }
})

提升功能
选项设置为
false

.pipe(uglify({
    compress: {
        hoist_funs: false
    }
})

这给了我以下错误
events.js:160 thrower;//未处理的“error”事件^GulpUglifyError:无法缩小JavaScript
这就是我所说的“uglify({just\u funs:false})”@MikeA添加了正确的语法,以防您的问题出现。
提升功能
属于
压缩
选项。非常感谢。成功了!这给了我以下错误
events.js:160 thrower;//未处理的“error”事件^GulpUglifyError:无法缩小JavaScript
这就是我所说的“uglify({just\u funs:false})”@MikeA添加了正确的语法,以防您的问题出现。
提升功能
属于
压缩
选项。非常感谢。成功了!