我的所有代码在使用Webpack编译时都会运行两次
All my code runs twice when compiled by Webpack
当我使用webpack-dev-server
使用webpack构建js捆绑包时,我的代码每次运行两次。不知道如何修复。
开发者工具控制台屏幕截图
我的webpack配置:
var path = require('path');
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var CopyWebpackPlugin = require('copy-webpack-plugin');
module.exports = {
devtool: 'cheap-eval-sourcemap',
entry: [
'webpack-dev-server/client?http://localhost:8080',
'webpack/hot/dev-server',
path.join(__dirname, '../src/main')
],
output: {
path: path.join(__dirname, '../dist'),
filename: 'bundle.js'
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
new webpack.optimize.OccurenceOrderPlugin(),
new HtmlWebpackPlugin({
template: path.join(__dirname, '../src/index.html')
}),
new CopyWebpackPlugin([
{
from: path.join(__dirname, '../assets'),
to: path.join(__dirname, '../dist/assets')
}
])
],
devServer: {
contentBase: path.join(__dirname, '../dist'),
outputPath: '/lol',
hot: true
},
module: {
loaders: [
{
test: /'.js$/,
loaders: ['babel-loader'],
include: path.join(__dirname, '../src')
}
]
}
};
在模板文件中,您可能手动添加了一个加载捆绑包的程序。
如果你没有
inject: false
中的选项
new HtmlWebpackPlugin({
template: path.join(__dirname, '../src/index.html')
}),
将再次添加捆绑包。
对@Emil Perhinschi和@ggloren早期的回复进行了扩展。。。
或者,如果您的../src/index.html
文件不依赖于除<script src="bundle.js"></script>
之外的任何脚本,只需将后者从index.html中删除即可
根据https://github.com/jantimon/html-webpack-plugin,inject
的默认值为true
,并且。。。
当传递
true
或'body'
时,所有javascript资源将放置在主体元件的底部。
因此,bundle.js的两个实例是:
- 您(大概)编码的
<script src="bundle.js"></script>
,以及 - HtmlWebpackPlugin的注入"在body元素的底部"
相关文章:
- Append元素在运行两次函数后不显示
- 我的所有代码在使用Webpack编译时都会运行两次
- JavaScript/JQuery表单验证运行两次
- 若在两个不同的选项卡中打开同一个页面,如何防止javascript运行两次
- jQuery停止函数运行两次
- Socket.IO:重新连接导致服务器连接代码运行两次
- nodejs - 为什么我的异步函数运行两次
- 模板函数在加载网页时运行两次
- 为什么 document.onreadystatechange 运行两次
- 必须在 Firefox 中运行两次 removeChild()
- nodeJs,运行两次sql可以将它们组合成json
- 防止脚本在执行时运行两次
- D3.js键功能在简单的选择器/数组组合上运行两次
- JS运行两次不起作用
- 如何防止 iframe 运行两次加载事件
- ng-重复运行两次(角度)
- Parse.com 云代码 - 保存运行两次后
- Jasmine在同一测试运行两次时失败
- 不明白为什么循环运行两次
- JavaScript事件侦听器运行两次