27

angular2 カスタム ライブラリの 1 つを RC.6 + Webpack に移行しようとしています。私のディレクトリ構造は次のとおりです。

- src - source TS files
- lib - transpiled JS files + definition files
- dev - development app to test if it works / looks ok.
- myCustomLib.js - barrel
- myCustomLib.d.ts

devフォルダー内でアプリを実行してみます。モジュールをブートストラップします。

app.module.ts

import { BrowserModule }                from "@angular/platform-browser";
import { NgModule }                     from "@angular/core";
import { AppComponent }                 from "./app.component";
import { MyCustomModule }               from "../../myCustomLib";

@NgModule({
    imports: [
        BrowserModule,
        MyCustomModule
    ],
    declarations: [ AppComponent ],
    bootstrap: [ AppComponent ]
})
export class AppModule {
}

現在、webpack を使用して開発アプリをバンドルしています。

webpack.config.js

module.exports = {
    entry: "./app/boot",
    output: {
        path: __dirname,
        filename: "./bundle.js",
    },
    resolve: {
        extensions: ['', '.js', '.ts'],
        modules: [
            'node_modules'
        ]
    },
    devtool: 'source-map',
    module: {
        loaders: [{
            test: /\.js$/,
            loader: 'babel-loader',
            exclude: /node_modules/
        }, {
            test: /\.ts$/,
            loader: 'awesome-typescript-loader',
            exclude: /node_modules/
        }]
    },
    watch: true
};

しかし、アプリをロードしようとすると、次のメッセージが表示されます。

metadata_resolver.js:230
Uncaught Error: Unexpected value 'MyCustomModule' imported by the module 'AppModule'

私がインポートするバレルファイルは次のようになります。

myCustomLib.js

export * from './lib/myCustomLib.module';

github で同様のトピックに関するヒントも見つけましたが、次のように変更します。

export { MyCustomModule } from './lib/myCustomLib.module';

助けにはなりませんでした。srcまた、ディレクトリからモジュールをインポートしようとしました-同じエラーです。以前は systemJS で問題なく動作していたので、MyCustomModule は問題ないはずです。

myCustomLib.module.ts:

import { NgModule }                     from '@angular/core';
import { BrowserModule }                from '@angular/platform-browser';

@NgModule({
    imports: [
        BrowserModule
    ]
})
export class MyCustomModule {}

このエラーの原因は何ですか? ここで同様のトピックを見てきましたが、答えもヒントも役に立ちませんでした。

編集:例をさらに簡単にするために、MyCustomModuleからすべて削除しました-同じ問題...

4

3 に答える 3

1

モジュールを解決するために、lib フォルダーをwebpack 構成に追加します。パスは、webpack 構成ファイルの場所に対する相対パスである必要があります。

resolve: {
   modules: ['node_modules','lib']
于 2017-07-14T00:42:41.540 に答える