我在尝试使用Aurelia加载模块时遇到了一个奇怪的问题。我已成功加载moment
库以格式化日期,但我尝试使用与numeral
完全相同的方式加载npm install <module> --save
库,但它正在尝试查找{{1} numeral
目录中的库而不是模块库。
我有两个ValueConverters:
使用/dist
的代码:
的src /滤波器/时间format.js
Moment
的src / clock.html
import moment from 'moment';
export class TimeFormatValueConverter {
toView(value) {
return moment(value).format('h:mm');
}
}
代码尝试使用<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>
:
的src /过滤器/温度format.js
Numeral
的src / weather.html
import numeral from 'numeral';
export class TemperatureFormatValueConverter {
toView(value) {
return numeral(value).format('(00)');
}
}
尝试使用<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
目录而不是模块库?我知道依赖注入有一些中断,但我不知道该怎么办。
答案 0 :(得分:2)
您似乎正在使用SystemJS。所以,你应该运行的是:
jspm install numeral
除非您正在做一些非常具体的事情,否则在使用SystemJS Skeleton时,您不必使用NPM安装任何软件包。
答案 1 :(得分:1)
如果您正在使用Aurelia-cli,只需将以下代码添加到aurelia.json
文件夹中的aurelia_project
文件中:
{
"name": "numeral",
"path": "../node_modules/numeral",
"main": "numeral"
},
在Aurelia,您始终需要明确列出您的依赖项。
如果您正在使用Skeleton安装,请参阅Fabio的回答。