我正在重构一个大型应用来使用commonjs而不是gazzilion脚本标签。我重构了主应用程序(入口点)导入不同应用程序模块,应用程序模块入口文件加载其控制器,服务等所有部分,我对代码感到满意。 我也使用tsconfig.json文件属性(包括带外部依赖关系的tsd.d.ts)进行参考分辨率,webstorm和vscode似乎也对代码感到满意。
到目前为止,我还没有使用任何外部模块导入。尝试使用tsc或browserify编译/捆绑我的代码会产生很多关于找不到外部模块的错误,例如。 "找不到名字' angular'"。所以我认为很好,我将在该档案中要求角度:
import * as angular from 'angular';
import {avatarModuleServices} from './services/module';
import {avatarModuleDirectives} from './directives/module';
import {AvatarProcessController} from './avatar-process-controller';
export var avatarModule = angular.module('cv.avatar', [
avatarModuleServices.name,
avatarModuleDirectives.name,
'angularFileUpload'
])
.controller(AvatarProcessController.className, AvatarProcessController);
然后我收到错误
TS2304:找不到姓名' angular'。
我认为,这可能是因为我使用bower获取角度,外部导入可能会查看node_modules目录。所以我继续通过npm安装了角度,但问题仍然存在。
此时我有什么选择将我的代码与来自npm和bower的外部依赖关系捆绑在一起?
btw我使用的是最新版本(角度1.4.8,tsc 1.7.3,浏览器化12.0.1等)