未在Aurelia中加载的模块

时间:2017-01-09 17:41:00

标签: javascript npm aurelia

我在尝试使用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 目录而不是模块库?我知道依赖注入有一些中断,但我不知道该怎么办。

2 个答案:

答案 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的回答。