Подтвердить что ты не робот

Код VS не может использовать /jspm _packages; systemjs не может видеть файлы angular2 ts

Я использую JSPM для создания базового рабочего процесса Angular 2. Он работает (см. https://github.com/simonh1000/Angular2-beta-jspm), но я не получаю intellisense, поскольку VS Code не видит модули Angular jspm, как это видно на изображении, Что мне делать?

Intellisense не может видеть модули jspm

И вот мой tsconfig.json, включая предложение от Эрика:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "sourceMap": true,
    "moduleResolution": "node"
  }
}

Я могу сделать некоторый прогресс в VS Code, используя этот тип оператора импорта

import { Component, View } from '../jspm_packages/npm/[email protected]/ts/core';

Но тогда я получаю сообщение об ошибке, когда я запускаю его в действие:

GET http://127.0.0.1:8080/jspm_packages/npm/[email protected]/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"
    }
  },
4b9b3361

Ответ 1

Ожидается, что в настоящий момент компилятор TypeScript не знает, как "найти" пакеты JSPM.

VSCode полагается на компилятор TypeScript, и компилятор знает, как искать модули через пакеты NPM (например, заглянуть внутрь node_modules/ - то, что делает "moduleResolution": "node").

Поскольку вы не установили Angular 2 через NPM, он не находится в папке node_modules/, и компилятор его не находит. Вы должны получить ту же ошибку, если вы используете компилятор командной строки tsc.

Решения являются обсуждаются и кажется TypeScript @next имеет базовую поддержку вручную указать список paths для поиска модулей (я еще не тестировал его). Это не кажется идеальным, хотя вам придется вручную поддерживать этот список каждый раз, когда изменяется зависимость JSPM.

Альтернативой является установка Angular 2 через NPM в дополнение к JSPM (например, npm install angular2 --save или --save-dev), но это дублирует зависимость, а также требует ручного обслуживания, когда они меняются.

Такова жизнь на краю кровотечения...