繁体   English   中英

Gulp minified js抛出错误

[英]Gulp minified js throws error

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

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

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

无法读取未定义的属性'...'

要么

未捕获的TypeError :(中间值)(中间值)(...)不是函数

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>

来自gulpfile.js的示例

gulp.task("[js]minify-all", function () {
    var mainFiles = [
        "./js/filename1.js",
        "./js/filename2.js",
        "./js/filename3.js",
    ];
    var reportFiles = [
        "./js/filename4.js",
        "./js/filename5.js",
        "./js/filename6.js",
    ];
    ...
    generateMinifiedFile(mainFiles, "./js/min/", "main");
    generateMinifiedFile(reportFiles, "./js/min/", "report");
    ...
}

var generateMinifiedFile = function(inputFiles, outputPath, outputFileName) {
    gulp.src(inputFiles)
        .pipe(concat(outputFileName + ".js"))
        .pipe(minify({
            ext: {
                min: ".min.js"
            },
            noSource: true
        }))
        .pipe(gulp.dest(outputPath));
};

万一重要,这里是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文件,该站点中断。

任何人都有我想念的建议吗?

UPDATE

创建控制器的示例:

var settingsModule = angular.module("settingsModule", ["rootModule"]);
settingsModule.controller('settingsCasesController', ["$rootScope", "$scope", "$http", "DataService", function ($rootScope, $scope, $http, dataService) {
    ...
}

注意:这应该是一个评论,但这是一个答案,因为它有点长,答案是更容易写和阅读...

首先,我想尝试设置为falsegulp-minify选择manglecompress

如果代码运行正常,您应该尝试设置为false只有一个选项,以查看哪个选项导致失败。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM