我正在使用JSPM创建一个基本的Angular 2工作流.它可以工作(见
https://github.com/simonh1000/Angular2-beta-jspm),但是我没有得到智能感知,因为VS代码没有看到Angular jspm模块,如图所示.我该怎么办?
这里是我的tsconfig.json,包括Eric的建议:
{ "compilerOptions": { "target": "es5","module": "commonjs","removeComments": true,"emitDecoratorMetadata": true,"experimentalDecorators": true,"sourceMap": true,"moduleResolution": "node" } }
我可以通过使用这种import语句在VS代码中取得一些进展
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" } },
这是预期的,因为TypeScript编译器不知道如何“查找”JSPM包.
VSCode依赖于TypeScript编译器,编译器只知道通过NPM软件包来查找模块(例如,看看node_modules / – 这是什么“moduleResolution”:“node”).
由于您没有通过NPM安装Angular 2,所以它不在node_modules /文件夹中,编译器没有找到它.如果您正在运行tsc命令行编译器,您应该得到相同的错误.
解决方案是being discussed,似乎TypeScript @ next有一些基本的支持manually specify一个路径寻找模块的列表(我还没有测试它).它似乎不是理想的,因为您必须在每次JSPM依赖关系更改时手动维护此列表.
另一种方法是除了JSPM(例如,npm安装angular2 –save或–save-dev)之外,还可以通过NPM安装Angular 2,但是这些依赖关系重复,并且在更改时也需要手动维护.
这是生命在流血的边缘…