我们已经用webpack和巴贝尔-装载机插件进行了一段时间的转换。对于我们的开发环境,配置文件如下所示:
module.exports = {
entry: {
// When I change the below to app2.js, it's no longer transpiled
app: path.resolve(__dirname, 'client', 'app.js'),
},
module: {
loaders: [
{
exclude: /node_modules/,
loader: 'babel',
test: /\.js$/,
},
{
test: /\.s?css$/,
loader: ExtractTextPlugin.extract('style-loader', sassLoaders.join('!')),
},
],
},
output: {
path: path.resolve(__dirname, 'build'),
publicPath: 'http://localhost:8080/',
filename: '[name].js',
},
plugins: [
new ExtractTextPlugin('[name].css'),
new webpack.DefinePlugin(processEnvPlugin),
],
postcss: [
autoprefixer({
browsers: ['last 2 versions'],
}),
],
resolve: {
extensions: ['', '.js', '.scss', '.css'],
root: [__dirname],
},
};我是用webpack-dev-server --inline --config=webpack-dev.config.js --content-base='client'运行这个的。
问题是,如果我在输入到app.js或其他任何东西中更改app2.js,该文件仍然由webpack服务器(运行在8080上)提供服务,但不再被传输。
app.js这个名字在babel-loader方面有什么独特的/神奇的地方吗?实际上,我能找到的每一个示例教程,包括webpack文档,都使用app.js约定,但很明显,它的名称应该可以是任何东西。
发布于 2017-04-19 11:43:33
您确定它不工作,并且正在检查正确的文件(app.js,总是这样)吗?如果所说的“该文件不再被转移”,您的意思是当您获得文件时,名为app2.js的文件不会被转移,这是您的配置所期望的行为。
根据您的配置,您的转移文件将始终被命名为app.js,而不管您的输入文件是什么:
filename: '[name].js', // => translates to "app.js"[name]被块的名称替换为"app“:
entry: {
app: ...
},为了避免输入和输出之间的混淆,可以将块命名为不同的名称,或者只需使用硬编码的输出名称,比如'bundle.js‘。
https://stackoverflow.com/questions/43398023
复制相似问题