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
папка через ваш конвейер, что то, что вы не хотите, и ломает вещи в вашем случае.