angular2-template-loader: Ошибка: невозможно разрешить './' в \@angular\compiler\src

Попытка связать мое приложение angular2 с webpack2 и angular2-template-loader, но получаю эту ошибку:

ERROR in ./~/@angular/compiler/src/compile_metadata.js
Module not found: Error: Can't resolve './' in 'C:\Users\eagor\Documents\work\node_modules\@angular\compiler\src'
 @ ./~/@angular/compiler/src/compile_metadata.js 393:22-35
 @ ./~/@angular/compiler/index.js
 @ ./~/@angular/platform-browser-dynamic/src/platform-browser-dynamic.js
 @ ./~/@angular/platform-browser-dynamic/index.js
 @ ./src/login/index.js

Без angular2-template-loader это просто отлично.

ЦСИ / Логин /index.js:

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { LoginModule } from './src/login.module';

document.addEventListener('DOMContentLoaded', function() {
    platformBrowserDynamic()
        .bootstrapModule(LoginModule);
});

ЦСИ / Логин / SRC / login.module.js

export class LoginModule {
    // make empty for example.
}

webpack.config.js:

var path = require("path");

module.exports = {
    entry: {
        login: "./src/login/index.js"
    },
    output: {
        path: path.resolve(__dirname, "wwwroot/bundles"),
        filename: "[name].min.js"
    },
    module: {
        loaders: [
            {
                test: /\.js$/, exclude: /node_modules/,
                loader: "babel-loader"
            },

            // adding this loader breaks
            {
                test: /\.js$/,
                loaders: ['angular2-template-loader'],
                exclude: [/\.(spec)\.js$/]
            },

            {
                test: /\.(html|css)$/,
                loader: 'raw-loader'
            }
        ]
    }
};

1 ответ

Решение

Вы должны исключить node_modules папка:

{
  test: /\.js$/,
  loaders: ['angular2-template-loader'],
  exclude: [/node_modules/, /\.(spec)\.js$/]
}

В противном случае Webpack пытается также трубу .js файлы, которые расположены где-то в node_modules папка через ваш конвейер, что то, что вы не хотите, и ломает вещи в вашем случае.

Другие вопросы по тегам