【问题标题】:Grunt Uglify returning different minified code from multiple developersGrunt Uglify 从多个开发人员返回不同的缩小代码
【发布时间】:2015-07-10 13:48:26
【问题描述】:

当我 uglify 我的代码时,我的机器生成的 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”。

【问题讨论】:

  • 之前也遇到过类似的问题,试试把node、npm、grunt、plugins都更新到同一个版本。理想情况下通过 package.json 文件维护
  • 您安装了哪个版本的uglify-js 作为grunt-contrib-uglify 的依赖项? Grunt 插件 only requires2.x 版本,至少是 2.4.0,所以也许你们中的一个人有一个更新的 uglify-js,它对这些类型的任务进行了一些更改。

标签: gruntjs grunt-contrib-uglify


【解决方案1】:

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

npm 列表 | grep '丑化'

输出应如下所示:

├─┬ 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 时,他们应该为每个依赖项及其子依赖项获得相同的版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多