当前位置: 首页 > 面试题库 >

使用Yeoman应用程序中的Grunt Build缩小后出现角度“ Unknown Provider”错误

丁俊智
2023-03-14
问题内容

gruntbuild在使用Yeoman生成的Angular应用程序(使用Coffee和Slim)时遇到问题,所有库都是最新的。(该应用程序是几天前使用最新生成器生成的。)

grunt buildgrunt server两个细初步制定。但是使用开发了几天后grunt server,我发现它gruntbuild已经完全停止工作了。

我解决了几个不同的问题。最大的问题是,我不得不完全放弃Slim来使用索引文件,而使用纯HTML,因为gruntbuild当它发布到时莫名其妙地删除了索引文件的80%/dist

不幸的是,在解决了几乎所有问题之后,我开始在我的Angular指令之一中收到此错误:

未捕获的错误:未知提供程序:aProvider <-a

问题似乎在于丑陋。我认为这可能与此处报告的问题相同,但我不确定。我尝试了多种解决方案,但对我而言唯一有效的方法是从我的coffeescript手动生成干净的js文件,将文件复制到中/dist,然后将路径写入中dist/index.html

显然,这不是最佳选择。我敢肯定,在Grunt中有一种更整洁的方法(可能是从构建过程中完全删除了缩小内容,就像其他用户在上面的链接中所做的那样),但是我是新手,还没有弄清楚如何做要做到这一点。无论哪种方式,这都是一种解决方法。

我的Gruntfile很基本:我只向默认文件添加了grunt-connect-proxy,grunt-contrib-sass和grunt-
slim。实际上,我试图引入一个干净的,新生成的Gruntfile,但是它并没有更好的构建。

失败的指令如下。错误实际上出现在控制器的第一行$scope.showInput = false。令人沮丧的是,一切都在中运行良好gruntserver。虽然我建立的那一刻,它完全崩溃了。

myModule.directive "editable", ->

  controller = ($scope) ->
    $scope.showInput = false

    $scope.saveContent = -> 
      $scope.toggleContent()
      $scope.save()

  linker = (scope, element, attrs) ->    
    scope.toggleContent = -> 
      scope.showInput = not scope.showInput
      setTimeout((-> element.find('input').focus()), 100)

  return DDO = 
    restrict: 'E'
    controller: controller
    link: linker
    templateUrl: "template/editable.html"
    scope:
      editableType: "@"
      text: "="
      placeholder: "@"
      save: "&"

(模板并不是很重要。它只有一个ng-switch可以使用切换的模板$scope.showInput。)

如果有人有任何建议,我将不胜感激。


问题答案:

这听起来像是Angular依赖于依赖项注入参数名称的常见问题。确保在传递依赖项时,将依赖项名称包含为字符串,以便Angular知道缩小后要注入的内容(因为在缩小过程中不会更改字符串值)。

myApp.controller('myCtrl', ['$scope', '$http', function($scope, $http) {

}])

来自Angular文档: 有关缩小的说明



 类似资料:
  • 我有个跟班问题。在构建我的应用程序时遇到这样一个错误,我找不到是怎么回事。 这是我的分级:

  • 问题内容: 是否有Flask或Jinja2配置标记/扩展名,可在呈现模板后自动最小化HTML输出? 问题答案: 找到了一种更好的方法。你可以使用以下方法缩小所有页面:

  • 我现在将在Google play Store上发布我的第一个应用程序。我已经压缩了应用程序中使用的图像。我有一些关于应用程序大小的问题。 如果应用程序的大小小于2 MB那么用户卸载应用程序的机会就会减少,我的这句话对于属于教育领域的应用程序是真的吗? 然而,当我在windows中看到我的apk文件时,它显示为3.10MB,但当它安装到设备中时,从应用程序信息中查看时,它显示: 并且,我在我的项目中

  • 我正在开发移动应用程序与离子有飞溅 截至目前,我正在使用以下代码进行配置 此外,我在第一次启动页面上使用了双击退出,下面是一段代码。 所以在启动页面,若我在5秒内点击两次后退按钮,它就会关闭。我可以在“打开的应用程序”列表中看到应用程序仍处于打开状态。(android手机中的第一个或最后一个按钮)。 问题是,如果我在双击退出后重新启动应用程序,那么它会显示一段时间的白屏和启动屏幕(但没有闪屏)。我

  • 问题内容: 我一直在从事一个更像框架的项目,并且可以安装几个应用程序/模块。像基本的应用商店或google.play商店一样看到它。这是一个Intranet应用程序,所有模块都可以添加到您的用户帐户中。 该框架已经在开发中,但是我现在正在围绕应用程序/模块的想法。(链接到开发中的概念证明,可以在这里找到) 一个应用程序应该是独立的,并且不能突然包含框架中的脚本,这可以通过在单独的模块中进行结构化来

  • null 脚本'C:\src\flutter\packages\flutter_tools\gradle\flutter.gradle'行:838 出了什么问题: 任务“:app:CompileFlutterBuildreLease”执行失败。 null null 应用程序:Build.Gradle