gpt4 book ai didi

javascript - Gulp 缩小后的 js 抛出错误

转载 作者:行者123 更新时间:2023-11-28 05:47:35 26 4
gpt4 key购买 nike

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

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

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

Cannot read property '...' of undefined

Uncaught TypeError: (intermediate value)(intermediate value)(...) is not a function

Ajax 压缩器的调用方式如下:

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 文件,网站崩溃了。

有人对我想念的东西有建议吗?

更新

创建 Controller 的示例:

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

最佳答案

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

首先,我尝试将 gulp-minify 选项 manglecompress 设置为 false .

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

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

关于javascript - Gulp 缩小后的 js 抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38368474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com