импортировать библиотеку с помощью angular2 — webpack

#angular #typescript #webpack #visual-studio-code #babylonjs

#angular #typescript #webpack #visual-studio-code #babylonjs

Вопрос:

Я использую angular2-webpack starter, и я хочу импортировать библиотеку npm, например Babylon js. Я делаю так

 import * as BABYLON from 'babylonjs/babylon';
  

И Babylon поставляется с d.ts файлом, поэтому я помещаю его в начало файла

 /// <reference path="../../../node_modules/babylonjs/babylon.d.ts" />
  

Хотя я могу использовать библиотеку, код Visual Studio помечается как ошибка и говорит Exported external package typings file 'node_modules/babylonjs/babylon.d.ts' is not a module. , и я не могу использовать автозаполнение, которое поставляется с наборами.
Я новичок в webpack, поэтому я не знаю, нужно ли мне что-то устанавливать. Моя конфигурация — это та, которая поставляется с начальной версией.

Это правильный способ импортировать внешнюю библиотеку? Что еще мне нужно настроить, чтобы избавиться от этой ошибки и использовать автозаполнение?

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

1. Я понял, что без импорта чего-либо я могу использовать автозаполнение, но тогда, конечно, BABYLON не определен. Итак, я не знаю, как импортировать BABYLON и сохранить типизацию.

2. В текущей предварительной версии babylonjs есть дополнительный файл модуля (./dist/preview release/babylon.module.d.ts). При попытке использовать babylonjs в angular2 таким образом, я теперь получаю «Инициализаторы не разрешены в окружающих контекстах».. У вас был успех с тем временем?

Ответ №1:

Первый:

 npm install babylonjs babel-types
typings install dt~babylon --save --global
typings install dt~babel-types --save --global
  

Затем в вашем коде:

 var BABYLON = require('babylon');
  

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

1. babel-types Для чего это нужно?

2. После поиска решений в SO и Github, это то, что действительно сработало для меня, без необходимости вручную редактировать файл d.ts пакета npm. И нет, вам не нужны типы babel.