我正在使用JSPM来创建基本的Angular 2工作流程。它可以工作(参见https://github.com/simonh1000/Angular2-beta-jspm),但我没有得到intellisense,因为VS Code没有看到Angular jspm模块,如图中所示。我该怎么办?
这是我的tsconfig.json
,其中包括Eric的建议:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"sourceMap": true,
"moduleResolution": "node"
}
}
我可以使用这种导入语句在VS Code中取得一些进展
import { Component, View } from '../jspm_packages/npm/angular2@2.0.0-beta.0/ts/core';
但是当我运行它时会出现错误:
GET http://127.0.0.1:8080/jspm_packages/npm/angular2@2.0.0-beta.0/ts/core.js
以下是config.js
的摘录System.config({
baseURL: "/",
defaultJSExtensions: true,
transpiler: "typescript",
typescriptOptions: {
"module": "commonjs",
"emitDecoratorMetadata": true
},
paths: {
"github:*": "jspm_packages/github/*",
"npm:*": "jspm_packages/npm/*"
},
packages: {
"app": {
"main": "main",
"defaultExtension": "ts"
}
},
答案 0 :(得分:6)
目前预计这是因为TypeScript编译器不知道如何找到"" JSPM包。
VSCode依赖于TypeScript编译器,编译器只知道通过NPM包查找模块(例如查看node_modules/
内部 - "moduleResolution": "node"
的内容。
由于您尚未通过NPM安装Angular 2,因此它不在node_modules/
文件夹中且编译器无法找到它。如果运行tsc
命令行编译器,则应该得到相同的错误。
解决方案为being discussed,而且似乎TypeScript @ next对manually specify paths
的列表提供了一些基本支持,可以查找模块(我没有&#t; t测试了它)。虽然每次JSPM依赖关系发生变化时都必须手动维护此列表,但它看起来并不理想。
另一种方法是在JSPM之外通过NPM安装Angular 2(例如npm install angular2 --save
或--save-dev
),但这会重复依赖性,并且在更改时也需要手动维护。
这就是生活在最前沿......