繁体   English   中英

unt角项目,然后由于找不到模块而出错

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM