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

时间:2015-07-10 13:48:26

标签: gruntjs grunt-contrib-uglify

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

例如:

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

已验证我们都使用相同版本的Grunt Uglify:"版本":" 0.6.0"。

1 个答案:

答案 0 :(得分:3)

之前我遇到过这个问题。请记住,您的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时 - 他们应该为每个依赖项及其子依赖项获得相同的版本。