2016-12-05 4 views
1

Я использую машинопись с aurelia/aurelia-cli. Я НПМ установил chart.js и добавить его в мой aurelia.json файл:Aurelia CLI не может импортировать chart.js TypeScript

"dependencies": [ 
     ... 
     { 
     "name": "chartjs", 
     "path": "../node_modules/chart.js/dist", 
     "main": "Chart" 
     }, 
] 

Я также управлял типизации:

typings install dt~chart.js --global --save 

Теперь я пытаюсь импортировать его в одном из моих компонентов

import * as Chart from 'chartjs' 

Но я получаю ошибку:

Cannot find module 'chartjs'. 

Я также попытался:

... from 'chart' 
... from 'Chart' 
... from 'Chart.js' 
... from 'chartjs' 
import * as chart ... 
import * as chartjs ... 

ответ

1

Я был в состоянии сделать его работу, изменяя свой импорт и aurelia.json файл.

aurelia.json

{ 
    "name": "chartjs", 
    "path": "../node_modules/chart.js/dist/Chart.min" 
}, 

импорт заявление

import 'chartjs'; 
0

Я знаю Chart.js работает с Aurelia, как мы используем его в одном из наших демонстрационных приложений для мастерских. В демонстрационном приложении оно импортируется следующим образом: import Chart from 'chartjs';, но это ES2015, а не TypeScript.

Кроме того, конфигурация должна выглядеть в aurelia.json:

 { 
     "name": "chartjs", 
     "path": "../node_modules/chart.js/Chart.min", 
     "exports": "Chart" 
     } 
+0

ли вы, ребята, используя chartjs v1 или v2? – Rodrigo

+0

Похоже, у меня есть 2.4.0 –

+0

Итак, зачем нужна собственность на экспорт? Я думал, что это для устаревших библиотек, которые используют глобальные скрипты. – Rodrigo

1

Вы пытались объявить пустой модуль? например в объявлении файла, как index.d.ts, добавьте:

declare module "chart.js"; 

Я считаю, что это хорошая отправная точка для импорта 3-библиотеками. Дополнительную информацию можно найти здесь: https://www.typescriptlang.org/docs/handbook/modules.html#working-with-other-javascript-libraries

Если ошибок нет, и вы можете использовать простые функции js chart.js, это значит, что библиотека включена, но типов нет.

Кроме того, если вы используете машинопись 2.0 Я думаю, вы должны быть установки типов, как это:

npm install --save @types/chartjs 
+0

Если я удалю все содержимое файла index.d.ts и просто добавлю 'declare module" chart.js ";", тогда ошибка исчезнет. Что вы подразумеваете, что библиотека включена, а типы нет? – Rodrigo

+0

Итак, если вы объявите модуль таким образом, все импорт из модуля будет иметь любой тип. У вас больше нет проверки типа, но пока вы правильно загрузили модуль, вы сможете использовать js. Если модуль не был загружен, и вы пытаетесь его использовать, вы получите кучу ошибок времени выполнения. js-библиотеки не всегда имеют определения типов, поэтому таким образом вы можете использовать обычную js-библиотеку без каких-либо typedef. – shusson

+0

Когда я объявляю такой модуль, визуальная ошибка студии удалялась, но когда приложение пытается скомпилировать ее, она выдает ошибку, что она не может найти «chart.js», и она вылетает из программы – Rodrigo

 Смежные вопросы

  • Нет связанных вопросов^_^