2017-01-09 7 views
2

В настоящее время я сталкиваюсь с странной проблемой при загрузке модуля с Aurelia. Я успешно загрузил библиотеку moment для дат форматирования, однако я пытаюсь загрузить библиотеку numeral точно так же с помощью npm install <module> --save, но она пытается найти библиотеку numeral в каталоге /dist, а не библиотеке модулей.Модуль не загружается в Aurelia

У меня есть два ValueConverters ниже:


кода с использованием Moment:

SRC/фильтры/время-format.js

import moment from 'moment'; 

export class TimeFormatValueConverter { 
    toView(value) { 
    return moment(value).format('h:mm'); 
    } 
} 

SRC/clock.html

<template> 
    <require from="./filters/date-format"></require> 
    <require from="./filters/time-format"></require> 
    <section class="au-animate"> 
    <h2 class="clock-font-large">${time | timeFormat}</h2> 
    </section> 
</template> 

код пытается использовать Numeral:

SRC/фильтры/температурно-format.js

import numeral from 'numeral'; 

export class TemperatureFormatValueConverter { 
    toView(value) { 
    return numeral(value).format('(00)'); 
    } 
} 

SRC/weather.html

<template> 
    <require from="./filters/temperature-format"></require> 
    <section class="au-animate"> 
    <h2 class="clock-font-large">${weather.main.temp | temperatureFormat }</h2> 
    </section> 
</template> 

Я получаю следующее сообщение об ошибке при попытке увидеть страницу с помощью numeral:

ERROR [app-router] Error: (SystemJS) XHR error (404 Not Found) loading http://clock.localhost:9000/dist/numeral.js 
    Error: XHR error (404 Not Found) loading http://clock.localhost:9000/dist/numeral.js 
    Error loading http://clock.localhost:9000/dist/numeral.js as "numeral" from http://clock.localhost:9000/dist/filters/temperature-format.js 

Почему пытается заглянуть в каталог /dist, а не библиотеки модуля? Я знаю, что есть некоторый разрыв в инъекции зависимостей, но я не уверен, что с этим делать.

ответ

2

Кажется, что вы используете SystemJS. Итак, что вы должны запустить это:

jspm install numeral

Если если вы делаете что-то очень специфична, вы не должны устанавливать какие-либо пакеты с помощью НПМ при работе с SystemJS Skeleton.

1

Если вы используете Aurelia-консоль, просто добавьте следующий код в файл aurelia.json в папке aurelia_project:

   { 
        "name": "numeral", 
        "path": "../node_modules/numeral", 
        "main": "numeral" 
       }, 

В Aurelia, вы всегда должны явно перечислить свою зависимость.

Если вы используете установку скелета, см. Ответ Фабио.

+0

Учитывая упоминание '/ dist ', @cchapman вряд ли будет использовать Aurelia CLI. –

+0

Хороший улов. Благодаря! Мой ответ будет работать только с CLI. – LStarky

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

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