【问题标题】:bundling and minification causes angular error: $injector:unpr unknown provider捆绑和缩小导致角度错误:$injector:unpr unknown provider
【发布时间】: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


【解决方案1】:

好的,所以我必须处理的方法是检查哪个文件导致了错误。 代码中进一步的 if 语句中的一个 .js.min 文件似乎引用了包中的文件并且找不到引用。

将该文件从捆绑包中取出并单独保存可以解决问题。

如果有任何想法如何将它包含在包中并仍然保留参考,我很乐意尝试一下。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-12
    • 2015-07-14
    • 2014-09-29
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多