Javascript Gulp缩小js抛出错误

Javascript Gulp缩小js抛出错误,javascript,gulp,minify,gulp-minify,Javascript,Gulp,Minify,Gulp Minify,我们有很多单独的JavaScript文件,当然,它们在生产中被缩小为各种其他文件。目前,我们使用from命令行来执行此任务,但目的是切换到 缩小过程本身似乎没有问题,所有输出文件都已生成,输出中没有写入错误,等等 但我有一个奇怪的问题,gulpjs生成的16个缩小文件中有4-5个抛出各种错误,例如: 无法读取未定义的属性“…” 或 未捕获类型错误:(中间值)(中间值)(…)不是函数 Ajax minifier的调用如下: AjaxMin.exe -js -xml .\minify.xml -cl

我们有很多单独的JavaScript文件,当然,它们在生产中被缩小为各种其他文件。目前,我们使用from命令行来执行此任务,但目的是切换到

缩小过程本身似乎没有问题,所有输出文件都已生成,输出中没有写入错误,等等

但我有一个奇怪的问题,
gulpjs
生成的16个缩小文件中有4-5个抛出各种错误,例如:

无法读取未定义的属性“…”

未捕获类型错误:(中间值)(中间值)(…)不是函数

Ajax minifier的调用如下:

AjaxMin.exe -js -xml .\minify.xml -clobber -evals:safeall
来自
minify.xml
的示例:

<?xml version="1.0" encoding="utf-8"?>
    <root>
      <output path="..\js\min\main.min.js">
        <input path="..\js\filename1.js"/>
        <input path="..\js\filename2.js"/>
        <input path="..\js\filename3.js"/>
        ...
      </output>
      <output path="..\js\min\report.min.js">
        <input path="..\js\filename4.js"/>
        <input path="..\js\filename5.js"/>
        <input path="..\js\filename6.js"/>
        ...
      </output>
      ...
    </root>
如果有必要,这里有
package.json

{
  "name": "package",
  "version": "1.0.0",
  "private": true,
  "devDependencies": {
    "gulp": "3.9.1",
    "gulp-bower": "0.0.13",
    "gulp-concat": "^2.6.0",
    "gulp-config": "0.3.0",
    "gulp-less": "3.0.5",
    "gulp-minify": "0.0.12",
    "gulp-minify-css": "1.2.4",
    "gulp-plumber": "1.1.0",
    "gulp-watch": "4.3.5"
  }
}
总而言之:

  • 使用非精简js文件,该站点运行良好
  • 使用由
    AjaxMin.exe
    创建的缩小js文件,网站运行良好
  • 使用由
    gulpjs
    创建的缩小的js文件,该网站将崩溃
谁有我错过的建议

更新

创建控制器的示例:

var settingsModule = angular.module("settingsModule", ["rootModule"]);
settingsModule.controller('settingsCasesController', ["$rootScope", "$scope", "$http", "DataService", function ($rootScope, $scope, $http, dataService) {
    ...
}
注意:这应该是一个评论,但它是一个答案,因为它有点长,而且答案更容易写和读

首先,我尝试将
false
设置为
gulpminify
options
mangle
compress

如果代码运行正常,您应该尝试设置为
false
只有一个选项,以查看哪一个选项是导致故障的原因


如果代码中断(这会很奇怪,因为我认为缩微器的主要任务是压缩和破坏…),我会尝试手动将一个
gulp minify
ed文件的输出与源代码进行比较,看看有什么变化…

您是否使用了源代码中可能存在的角度?@IlyaNovojilov yes,角度文件是页面上的直接引用,因此它们不会缩小为任何输出文件。是否缩小角度指令?如果是这样@IlyaNovojilov是的,它们应该是安全的(我必须检查一下才能给出100%肯定的答案),但是使用AjaxMin不是也会有问题吗?@IlyaNovojilov重复检查,角度指令是缩小安全的,我将
压缩
变形
设置为false,但我仍然有同样的问题,我会尝试手动比较一个压缩文件的输出和源代码,看看有什么变化,并从这些变化中追溯到根本问题。还有一个问题:您的代码是否通过了jslint检查?由于涉及到许多遗留文件,我盲目地说它们没有通过。另一方面,这不应该也是AjaxMin的一个问题吗?这是可能的(嗯,很确定…:-)这两个迷你们拥有不同的严格程度,甚至是不同的语言标准遵守程度…:-(
var settingsModule = angular.module("settingsModule", ["rootModule"]);
settingsModule.controller('settingsCasesController', ["$rootScope", "$scope", "$http", "DataService", function ($rootScope, $scope, $http, dataService) {
    ...
}