Grunt Uglify 从多个开发人员返回不同的缩小代码

Grunt Uglify returning different minified code from multiple developers

当我丑化我的代码时,我的机器会生成与其他开发人员不同的 javascript 缩小版本。我们的两个缩小代码都是正确的,但略有不同。

例如:

-            }) : (a.visible = !1, a.videoCss = b > d ? "hideLeft" : "hideRight");
+            }) : (a.visible = !1, b > d ? a.videoCss = "hideLeft" : a.videoCss = "hideRight");

确认我们都在使用相同版本的 Grunt Uglify:"version": "0.6.0".

我以前 运行 遇到过这个问题。请记住,您的 package.json 文件将指定要使用的 grunt-contrib-uglify 版本;但是 grunt-contrib-uglify 它自己的 依赖项。您的 uglify-js 版本可能不一致。要检查这一点,请在项目的根目录(package.json 文件所在的位置)键入:

npm list | grep 'uglify'

输出应如下所示:

├─┬ grunt-contrib-uglify@0.9.1
│ ├─┬ uglify-js@2.4.23
│ │ ├── uglify-to-browserify@1.0.2

锁定顶级依赖项的子依赖项的技术是使用 npm shrinkwrap。这将生成一个名为 npm-shrinkwrap.json 的文件,该文件递归扫描您的 node_modules 目录并定义依赖项和子依赖项及其特定版本。在您的情况下,该命令可能看起来像

npm shrinkwrap --dev

现在,当其他人运行 npm install - 他们应该为每个依赖项及其子依赖项获得相同的版本。