Простой импорт модуля узла в Angular 2 с наборами

#angularjs #angular #typescript-typings

#angularjs #angular #typescript-typings

Вопрос:

Заголовок моего файла выглядит следующим образом:

 /// <reference path="../../typings/index.d.ts" />
import * as c3 from 'c3';
  

Но когда я запускаю приложение, я получаю эту ошибку:

http://localhost:3000/c3 Failed to load resource: the server responded with a status of 404 (Not Found)

c3 включен в зависимости package.json. typings.json выглядит так:

 {
  "globalDependencies": {
    "d3": "registry:dt/d3#0.0.0 20160907005744",
    "c3": "registry:dt/c3#0.0.0 20160926143332",
    "core-js": "registry:dt/core-js#0.0.0 20160725163759",
    "node": "registry:dt/node#6.0.0 20160831021119"
  }
}
  

И typings/index.d.ts выглядит так:

 /// <reference path="globals/d3/index.d.ts" />
/// <reference path="globals/c3/index.d.ts" />
/// <reference path="globals/core-js/index.d.ts" />
/// <reference path="globals/node/index.d.ts" />
  

tsconfig.json выглядит так:

 {
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": true,
    "suppressImplicitAnyIndexErrors": true
  },
  "files": [
    "typings/index.d.ts"
  ]
}
  

Есть какие-либо подсказки о том, что неправильно настроено?

Комментарии:

1. Как вы загружаете свои модули? Используете ли вы SystemJS или Webpack или что-то еще?

2. Я считаю, что я использую CommonJS. Из моего tsconfig.json: "module": "commonjs", "moduleResolution": "node",

3. Вероятно, вы используете что-то еще для загрузки отдельных модулей. Эта ошибка на самом деле не имеет ничего общего с Typescript, она не загружает сам модуль (что не относится к TS). Можете ли вы показать свой index.html ? Это, вероятно, укажет на то, что вы используете

4. ах, я вижу <script src="systemjs.config.js"></script> , что этот файл находится здесь: gist.github.com/MichaelCPell/d4564b53b25faa3f41e1863e63976006

5. Вероятно, вам нужно будет добавить к нему модуль. Я давно не использовал SystemJS, но, если я правильно помню, вам нужно будет добавить его к map объекту и packages объекту

Ответ №1:

Поскольку вы используете SystemJS, вам нужно будет добавить модуль в systemjs.config.js файл (или как вы его назвали). Вам нужно будет добавить модуль в объекты map and pakcages .