![](/img/trans.png)
[英]Cannot find module '@schematics/angular/utility/project'
[英]grunt an angular project then it errors as Cannot find Module
嗨,我有一个问题:)我开发了一个有角度的项目,它在我的localhost
apache
可以正常工作。 我正在使用angular 1.4.3
进行前端处理,使用node.js
进行后端处理。 现在,我需要使用Grunt对其进行版本控制。 我做了很多配置(例如禁用了那个枫树。 it changes all variables names such as a,b,c from indexCounter,PersonCounter,AgencyCounter and it causes some problems.
)但是,每次尝试运行时都会出现错误。 就像[模块]找不到。 我的项目在我的本地计算机上运行如果我不咕vendor.js vendor2.js and app.js
it,但vendor.js vendor2.js and app.js
之后,我将3个文件作为vendor.js vendor2.js and app.js
在vendor.js
我有native angular js
文件。 在vendor2.js
我有plugins
。 最后在app.js
我有controllers
。 我将它们按此顺序添加到索引HTML中。
vendor.js vendor2.js app.js
你有什么想法吗?
问题:在有角度的情况下,如果不使用.$inject
或数组语法,则无法缩小代码。
解
对于添加到模块中的每个控制器,指令,服务等,您将必须添加一个额外的字符串数组,这些字符串指定应注入到服务,控制器等中的依赖项。
例
使用$inject
属性
function mainController(indexCounter,PersonCounter,AgencyCounter) {
//Controller implementation
}
mainController.$inject=['indexCounter','PersonCounter','AgencyCounter'];
angular
.module('mymodule')
.controller('mainController', mainController);
使用数组
var mainController;
function controller(indexCounter,PersonCounter,AgencyCounter) {
//Controller implementation
}
mainController=['indexCounter','PersonCounter','AgencyCounter', controller];
angular
.module('mymodule')
.controller('mainController', mainController);
当您未在数组中指定依赖项时,angular将尝试根据其参数名称查找已注册的依赖项。 例如function mainController(indexCounter) {}
,然后angular将尝试找到一个名为indexCounter
的已注册依赖indexCounter
。 当代码没有缩小时,它可以很好地工作。 然而,精缩时indexCounter参数名称将变更为短的名称,例如a
。 并试图找到相关性,当a
未在您的应用程序注册。 它将无法使您的角度模块保持稳定。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.