【发布时间】:2016-07-25 06:33:29
【问题描述】:
我在使用 webpack 时遇到了一些问题。我正在使用 ES6、ReactJS、Mobx 和 SASS。这是我的开发配置:
var path = require('path');
var webpack = require('webpack');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var autoprefixer = require('autoprefixer');
var pathes = {
root: './src/main/webapp/WEB-INF/static',
entry: './src/main/javascript/client.js',
js: '/js/',
css: '/css/'
}
var extractSASS = new ExtractTextPlugin( path.join(pathes.css, 'main.css') );
var extractVendorCSS = new ExtractTextPlugin( path.join(pathes.css, 'vendor.css') );
module.exports = {
devtool: 'eval-source-map',
entry: pathes.entry,
output: {
path: pathes.root,
filename: path.join(pathes.js, 'app.js')
},
module: {
loaders: [
{
test: /\.js$/,
exclude: /(node_modules)/,
loaders: [ 'babel' ]
},
{
test: /\.scss$/,
loader: extractSASS.extract([ 'css', 'postcss', 'sass' ])
},
{
test: /\.css$/,
loader: extractVendorCSS.extract([ 'css' ])
}
]
},
plugins: [
extractSASS,
extractVendorCSS,
new webpack.DefinePlugin({
DEVELOPMENT: true
})
],
postcss: function () {
return [ autoprefixer ];
}
};
一切都很好,但是今天我在服务器端 Spring 启动应用程序上添加了重定向到 /index 的拦截器。我不知道这会如何破坏 webpack,但他停下来重建包。
要运行 webpack,我使用以下命令:
webpack --progress --colors --watch --config ./configs/webpack.development.config.js
我不使用 webpack-dev-server,因为静态文件由嵌入式 Tomcat (Spring boot) 提供。
在控制台 webpack 中表示 bundle 已重建,但 bundle 不包含任何更改。
一个有趣的细节是,如果我将包名称从 app.js 更改为例如 app1.js 并通过上面的命令重新运行 webpack,webpack 将接受所有更改并更新包。之后,webpack 将通过更改自动重建包(因为--watch)。
为什么 webpack 不使用旧名称 app.js 重建包?
【问题讨论】:
标签: javascript webpack