Ответ 1
Я, наконец, решил проблему:)
ПРИМЕЧАНИЕ:, если у вас сгенерированный проект с использованием Angular CLI 1.0 или выше, теперь вы можете использовать свой собственный файл конфигурации webpack, и это упрощает весь процесс. Проверьте этот ответ в этом случае.
После запуска кода с моей настраиваемой конфигурацией webpack я понял, что ошибка VM33: 106 Uncaught ReferenceError: окно не определено, вызвано webpack-dev-server.
Я решил это:
1 - создание автономной сборки webpack
$: webpack --watch #this creates the bundes at myProject/dist
и
2 - работа с другим инструментом devserver, например simplehttpserver
$: npm install simplehttpserver -g
$: simplehttpserver -p 8080 dist/ #as my webpack bundle is included in index.html using that port by default
И voilà, ошибка ушла и она просто работает!
Изменения, примененные к проекту angular -cli: Конфигурация Webpack
Позвольте мне суммировать изменения webpack в отношении исходного проекта angular -CLI.
Поскольку angular-cli
не предоставляют доступ к файлу webpack.config.js
, и настройка webpack является ключом к использованию веб-мастеров, я включил мой, делая небольшие изменения в коде.
Файл конфигурации Webpack выглядит следующим образом:
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var helpers = require('./config/helpers');
module.exports = {
entry: {
'app': ['./src/polyfills.ts', './src/vendor.ts', './src/main.ts'],
'webworker': ['./src/workerLoader.ts']
},
resolve: {
extensions: ['', '.ts', '.js']
},
output: {
path: helpers.root('dist'),
publicPath: 'http://localhost:8080/',
filename: '[name].js'
},
devtool: 'cheap-module-eval-source-map',
module: {
loaders: [
{
test: /\.ts$/,
loaders: ['awesome-typescript-loader?tsconfig=./src/tsconfig.json', 'angular2-template-loader']
},
{
test: /\.html$/,
loader: 'html'
},
{
test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)$/,
loader: 'file?name=assets/[name].[hash].[ext]'
},
{
test: /\.css$/,
exclude: helpers.root('src', 'app'),
loader: ExtractTextPlugin.extract('style', 'css?sourceMap')
},
{
test: /\.css$/,
include: helpers.root('src', 'app'),
loader: 'raw'
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: 'src/index.html',
excludeChunks: ['webworker']
}),
new ExtractTextPlugin('[name].css')
]
};