【发布时间】:2016-09-27 22:03:06
【问题描述】:
我正在处理一个大型项目,之前在 Web Essentials 中使用了 Java 和 css 的缩小,但尚未进行捆绑。
我现在想离开 WebEssentials 并使用其他东西。
我开始使用 Gulp 缩小和捆绑 app .js 文件的一部分,但在加载项目时,其中一个页面出现错误:
Error: $injector:unpr Unknown Provider caused by other .min.js files,
在我添加之前一切正常。
所有文件都以完全相同的顺序添加到路径中,因为它们应该加载到页面上。还只替换了那些已添加到捆绑包中的文件。
gulp 缩小代码:
gulp.task("min:appjs", function ()
{
return gulp.src(["!gulpfile.js", "!app/" + paths.minJs, paths.appjs], { base: "." })
.pipe(sourcemaps.init())
.pipe(concat(paths.concatJsAppDest), { newLine: ';' })
.pipe(ngmin())
.pipe(annotate())
.pipe(uglify())
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('.'));
});
我无法理解的是:我的缩小文件如何导致其他缩小文件在他们以前工作时崩溃。加上项目的一页加载没有任何错误,其他页面不起作用。
我应该检查的任何想法?
【问题讨论】:
-
所以通常我应该在添加注释后将所有以前生成的 .min.js 文件替换为新文件(猜想 ng-annotate 应该在那里管理)?
-
当然你需要用正确的语法重新生成所有的 min 文件。 ng-annotate 也可以,只使用数组表示法。
-
好的,这没有帮助。完全相同的错误。我应该假设 gulp 的 ng-annotate 没有正确进行注释吗?
-
我会假设 you 没有在需要的地方放置注释。将
ng-strict-di属性添加到您拥有ng-app的节点并运行非缩小应用程序。它应该可以准确地告诉您问题出在哪里。
标签: javascript angularjs gulp bundling-and-minification angularjs-injector