javascript - webpack-dev-server 不会自动重新加载和构建 - 配置问题

标签 javascript node.js webpack

我在我的项目中使用:

"webpack": "2.2.1",
"webpack-dev-server": "2.4.2"

当文件更改时,我需要使用 webpack-dev-server 实时重新加载来构建一个应用程序。

在我的 package.json 中我有这样的设置:

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "webpack-dev-server --hot --inline"
},

目前我可以通过运行以下命令来手动构建应用程序: webpack 并且我能够使用 npm start 初始化开发者服务器。

我面临的问题是,在 npm start 和本地服务器运行后,如果我对 JS 文件进行一些更改,应用程序不会被重建,页面也不会自动刷新。目前,我需要始终在控制台中手动重新运行 webpack

我在控制台中没有收到任何错误,因此我认为这是一个错误的配置问题。

您能指出我的设置有什么问题吗?


// file: webpack.config.js
const path = require('path');
module.exports = {
    entry: './src/index.js',
    output: {
        path: path.resolve(__dirname, 'build'),
        filename: 'app.bundle.js',
    },
    devServer: {
        inline: true,
        port: 8080
    },
    module: {
        loaders: [
            {
                test: /\.js$/,
                exclude: /node_modules/,
                loader: 'babel-loader'
            }
        ]
    }
};

最佳答案

webpack-dev-server 从内存中提供文件。

来自readme :

It uses webpack-dev-middleware under the hood, which provides fast in-memory access to the webpack assets.

因此它不会将任何文件写入磁盘,并且在文件系统上不存在文件的情况下它也可以工作。当您删除 build 目录并启动开发服务器而不运行 webpack 时,它应该仍然可以工作。如果没有,您就不会访问开发服务器提供的路径,而是使用文件系统中的文件。

您使用的 index.html 可能位于 build 目录之外,因此您可以像这样包含该包:

<script src="build/app.bundle.js"></script>

您正在服务器上请求 /build/app.bundle.js,但 webpack-dev-server 只会提供 /app.bundle。 js (因为这是您配置的文件名)。要解决此问题,您可以配置 output.publicPath :

output: {
    path: path.resolve(__dirname, 'build'),
    filename: 'app.bundle.js',
    publicPath: '/build/'
},

这将影响包含 Assets 的加载器。如果你不想这样,你可以设置 devServer.publicPath相反,但建议保持它们相同。

关于javascript - webpack-dev-server 不会自动重新加载和构建 - 配置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43018804/

相关文章:

javascript - 捕获一系列 &lt;input&gt; 元素上的按键事件并对值求和

javascript - 赋值和函数执行

javascript - 通过url发送2个变量

openshift 中的 Node.js 部署

reactjs - 故事书-顺风。我应该如何将顺风添加到故事书中

vue.js - Vue SFC 中的 SCSS 别名通过 Rollup

javascript - 处理货币值(value),将数字除以 100 安全吗?

javascript - 使用 node-debug 调试 Node js

javascript - V8 垃圾回收会释放内存吗?

webpack - 桶锉和树摇