Aurelia Webpack加载程序无法找到我添加的模块作为功能

时间:2017-04-25 09:53:11

标签: aurelia aurelia-framework

我有一个用Webpack构建的小型Aurelia应用程序。在我的 src 文件夹下,我有 util 文件夹,里面有 index.ts 。在 main.ts 中,我打开了这个功能:

import { Aurelia, PLATFORM } from "aurelia-framework";

export function configure(aurelia: Aurelia) {
    aurelia.use
        .standardConfiguration()
        .developmentLogging()
        .feature(PLATFORM.moduleName("util"));
    aurelia.start().then(() => aurelia.setRoot(PLATFORM.moduleName("app")));
}

UTIL / index.ts

import { FrameworkConfiguration } from 'aurelia-framework';

export function configure(config: FrameworkConfiguration): void {
    config.globalResources([
        "./converters",
        "./rest"
    ]);
}
util 下的Typescript模块

转换器 rest

我按照Aurelia Hub的说明进行操作。

当我在浏览器中打开应用程序时,我看到以下错误:

Uncaught (in promise) Error: Unable to find module with ID: util/index
    at WebpackLoader.<anonymous> (aurelia-loader-webpack.js:187)
    at step (aurelia-loader-webpack.js:36)
    at Object.next (aurelia-loader-webpack.js:17)
    at aurelia-loader-webpack.js:11
    at Promise (<anonymous>)
    at webpackJsonp.64.__awaiter (aurelia-loader-webpack.js:7)
    at WebpackLoader.webpackJsonp.64.WebpackLoader._import (aurelia-loader-webpack.js:152)
    at WebpackLoader.<anonymous> (aurelia-loader-webpack.js:252)
    at step (aurelia-loader-webpack.js:36)
    at Object.next (aurelia-loader-webpack.js:17)

如果我直接引用模块而不是功能,例如

import { Rest } from '../util/rest';

然后我没有错误,应用程序加载成功。但我希望这些模块在全球范围内可用。

使用 aurelia-webpack-plugin 版本 2.0.0-rc.2

非常感谢您的建议。

2 个答案:

答案 0 :(得分:4)

看看这个: https://github.com/aurelia/templating-resources/blob/master/src/aurelia-templating-resources.js

编辑:

我已经开始工作了。关键是你需要在每个路径上明确地调用PLATFORM.moduleName('./relative/path/to/file'),并且需要从调用config.globalResources()的文件(实际上在技术上相同的目录,但仍然......)中调用。 / p>

换句话说,您无法快速执行以下代码:

config.globalResources(
   PLATFORM.moduleName('./resource1'),
   PLATFORM.moduleName('./resource2')
);

请勿尝试将资源映射到PLATFORM.moduleName或动态构建文件名。

答案 1 :(得分:0)

您应该将路径PLATFORM.moduleName("util")更改为PLATFORM.moduleName(“./ util”)。然后,您就可以使用相对于util文件夹的路径来注册globalResources。您还可以查看here示例项目结构。另请参阅此line代码,如果未包含,则aurelia会将/index添加到moduleName,因为它基于约定。

如果您已尝试使用aurelia CLI,则src/resources下的已创建项目会被注册为功能。