Подтвердить что ты не робот

Неожиданное значение "MyCustomModule", импортированное модулем "AppModule",

Я пытаюсь перенести одну из моих angular2 пользовательских библиотек в 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 - ту же ошибку. MyCustomModule должен быть в порядке, поскольку он работал нормально с systemJS раньше.

myCustomLib.module.ts:

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

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

Любая идея, что может быть причиной этой ошибки? Я видел похожие темы здесь, но не было ответа или подсказки.

Изменить. Чтобы сделать пример еще проще, я удалил все из MyCustomModule - ту же проблему...

4b9b3361

Ответ 2

в myCustomLib.js, попробуйте импортировать перед экспортом

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

export MyCustomModule;

Ответ 3

ваш MyCustomModule должен находиться внутри папки src/app, поскольку он не распознается компилятором, потому что компилятор компилирует все файлы в папке src, поэтому он не распознает ваш модуль