我曾经为 Angular 2 alpha 45 构建了一个应用程序,它的运行效果非常好,但是我不得不进行大量的“折腾”才能让它正常工作。我理解 Angular 2,但我不知道如何开始使用 Angular 2。
我正在尝试进行一个干净的构建,使用 'Angular 2: 5 min Quickstart'。有很多问题,我会尽可能具体地描述。我想学习这些问题的原因,并希望找到解决方法。 Visual Studio 2015 Update 1,Typescript 1.7。
Typescript 配置: 快速入门包括一个 tsconfig.json 文件。
{
"compilerOptions": {
"target": "es5",
"module": "system",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"node_modules"
]
}
我不确定这是否有任何作用,因为我必须编辑ProjectName.csproj文件并添加以下行来消除实验性装饰器错误:
<TypeScriptExperimentalDecorators>True</TypeScriptExperimentalDecorators>
https://github.com/Microsoft/TypeScript/issues/3124似乎表明tsconfig文件需要在/脚本中才能工作,但对我也没有用。
我想知道如何使这个tsconfig文件能够工作,或者编辑.csproj文件以获得相同的编译器选项。如果您查看项目属性>Typescript Build。这些是要紧的吗?模块系统应该是: 系统吗?
我的文件结构与Quickstart相同。
app/
app.component.ts
boot.ts
node_modules/
blah
index.html
tsconfig.json
package.json
我使用powershell运行npm install获取node_modules目录中的所有内容。
import {Component} from 'angular2/core';
显示错误。../node_modules/angular2/core';
不显示错误,但是当您构建项目时,您会在node_moduels/angular2/src/*
文件中获得大量的构建错误。现在,我可能能够手动修复这些问题,但如果出现这些错误,则认为配置是错误的。tsconfig似乎想要排除node_modules
。为什么我不能使用'angular2/core'
而必须使用相对路径?如果我在Visual Studio项目中包括node_modules,则node_modules
中会出现许多构建错误。
另外:
我正在进行此清除构建,因为我无法弄清如何将项目从alpha 45更新到beta 0。从Angular 2更改中修复我的项目中的错误将很容易,但是当前使应用程序加载所有模块是不可能的。
下一部分假设我已经解决了构建错误:
在index.html
中有:
System.config({
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('app/boot')
.then(null, console.error.bind(console));
我从未成功地使用System.import('app/boot')
,而不指定文件扩展名。这是Visual Studio的问题还是.NET MVC的问题?如果我在index.html
中指定文件扩展名,那么System.js会尝试查找没有文件扩展名的组件文件,结果返回404(即使配置已经设置了defaultExtension: 'js'
)。这是因为我需要在项目中包含js文件吗?如果我解决了那个问题,接下来还需要处理的是
system.src.js:1049 GET http://localhost:63819/angular2/http 404 (Not Found)
我以前没有出现任何构建错误,但现在 System.js 没有加载任何内容。
我觉得这些都是由不同的系统以不同的方式解释 TypeScript 所创建的问题。我觉得我表达得不够清楚,但我不知道如何更清晰地表达这个问题。我真的很感激您能给我任何帮助和指导。我感觉我已经搜索了好几天了,但仍然找不到答案。