【发布时间】:2017-02-26 20:38:54
【问题描述】:
我正在从头开始自学 webpack,当我更改应用文件中的 .js 并显示更改时,我正在尝试使用 webpack-dev-server 实时更新浏览器。假设我有以下package.json
{
"name": "webpack-babel",
"version": "1.0.0",
"description": "",
"main": "webpack.config.js",
"scripts": {
"serve": "webpack-dev-server --hot",
"start": "webpack"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"babel-core": "^6.23.1",
"babel-loader": "^6.3.2",
"babel-preset-es2015": "^6.22.0",
"webpack": "^2.2.1",
"webpack-dev-server": "^2.4.1"
}
}
这是我的 webpack.config.json
const path = require('path');
const config = {
entry: './app/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
query: {
presets: ['es2015']
}
}
],
}
};
module.exports = config;
我的 ./app/index.js 中有以下代码(这里没什么疯狂的):
let message = 'I love socks and snacks !';
console.log(message);
当我运行 npm run serve 时,将我的 app/index.js 中的消息更改为 'I love cola and snacks !!!' 并保存终端并编译,但浏览器中没有任何更新。捆绑文件仍然包含旧消息并且没有生成。我究竟做错了什么?我几个小时前才开始尝试这个,所以我是 webpack 的新手。
我在 IDE 中关闭了“安全写入”,我的文件结构是这样的:
这是我的 index.html...
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script src="dist/bundle.js"></script>
</body>
* UPDATE * 将 publicPath: 'dist/' 添加到 output 对象似乎有效...但我不确定这是否是解决我的问题的正确方法。
【问题讨论】:
-
webpack 开发服务器不会向磁盘写入任何内容。这一切都在记忆中提供。
标签: npm webpack webpack-dev-server