Wir haben viele separate JavaScript-Dateien, und natürlich sind sie in verschiedenen anderen in Produktion minimiert. Derzeit verwenden wir Microsoft Ajax Minifier von der Befehlszeile für diese Aufgabe, aber die Absicht ist, zu gulpjs zu wechseln.Gulp minified js wirft Fehler
Der Verkleinerungsprozess selbst in Ordnung zu sein scheint, sind alle Ausgabedateien erzeugt werden, wird kein Fehler Ausgabe geschrieben, usw.
Aber ich habe eine seltsame Frage, ~ 4-5 von 16 minimierte verschiedene Fehler erzeugten Dateien von gulpjs
werfen, wie zum Beispiel:
Cannot read property '...' of undefined
oder
Uncaught TypeError: (intermediate value)(intermediate value)(...) is not a function
Ajax mi nifier wird wie folgt aufgerufen:
AjaxMin.exe -js -xml .\minify.xml -clobber -evals:safeall
eine Probe aus dem 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>
Eine Probe von 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));
};
Falls es darauf ankommt, ist hier 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"
}
}
Um es zusammenzufassen:
- Mit nicht-minified js-Dateien funktioniert die Website gut.
- Mit minimierten js-Dateien erstellt von
AjaxMin.exe
funktioniert die Website einwandfrei. - Mit minimierten js-Dateien erstellt von
gulpjs
bricht die Website.
Jeder hat einen Vorschlag, was ich vermisse?
UPDATE
Beispiel für die Erstellung eines Controllers:
var settingsModule = angular.module("settingsModule", ["rootModule"]);
settingsModule.controller('settingsCasesController', ["$rootScope", "$scope", "$http", "DataService", function ($rootScope, $scope, $http, dataService) {
...
}
Verwenden Sie Angular möglicherweise in Ihren Quellen? –
@IlyaNovojilov ja, eckige Dateien sind direkte Verweise auf den Seiten, so dass sie in keine der Ausgabedateien minimiert werden – Szeki
Verkleinern Sie Ihre eckigen Anweisungen? Wenn ja http://stackoverflow.com/questions/18782324/angularjs-minify-best-practice –