我在使用angular-cli创建的示例angular5应用程序上有以下文件夹/文件结构:
ngsample
| tsconfig.json
| src
| | main.ts
| | tsconfig.app.json
| | app
| | | app.module.ts
| | model
| | | index.ts
| | | person.ts
| | services
| | | index.ts
| | | restclient.service.ts
当尝试进行“ng build”或“ng serve”时,我收到以下错误:
> ./app/model/person.ts中的错误模块构建失败:错误: 缺少C:\ Repos \ ngsample \ src \ app \ model \ person.ts TypeScript编译。请确保它在您的tsconfig中 'files'或'include'pproperty。 在AngularCompilerPlugin.getCompiledFile(C:\ Repos \ ngsample \ node_modules \ @ngtools \ webpack \ src \ angular_compiler_plugin.js:662:23) 在plugin.done.then(C:\ Repos \ ngsample \ node_modules \ @ngtools \ webpack \ src \ loader.js:467:39) @ ./app/model/index.ts 2:0-28 @ ./app/services/restclient.service.ts @ ./app/services/index.ts @ ./app/app.module.ts @ ./main.ts @ multi ./main.ts
已经发现一堆文章建议“ng serve --preserve-symlinks”或修改“tsconfig.json”和/或“tsconfig.app.json”以包含src下的所有.ts文件/ app文件夹。我在研究中发现的所有方法似乎都不起作用。
还确保我没有拼写错误,我确信现在不是问题。
BTW,“model”和“services”下的index.ts文件只是导出这些文件夹下的所有类,例如: // model/index.ts
export * from "./person"
// services/index.ts
export * from "./restclient.service"
我可以测试其他方法的任何想法,看看我是否可以正确编译应用程序?
使用的版本:
// packages.json
"@angular/common": "^5.2.0",
"@angular/compiler": "^5.2.0",
"@angular/core": "^5.2.0",
"@angular/cli": "1.6.7",
"typescript": "^2.6.0"
// node -v
v6.11.3
// ng -v
@angular/cli: 1.6.7
@angular-devkit/build-optimizer: 0.0.42
@angular-devkit/core: 0.0.29
@angular-devkit/schematics: 0.0.52
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 1.9.7
@schematics/angular: 0.1.17
typescript: 2.6.2
webpack: 3.10.0