我是在生产构建期间还是在准备生产时删除 webpack-dev-server 和 hot-module 中间件代码?

Do I remove webpack-dev-server and hot-module middleware code during production build, or when I get ready for production?

如标题所示,当我准备好托管生产代码时,我是否应该从我的服务器代码中删除 webpack-dev-middlewarewebpack-hot-middleware 的所有用法,因为它们是 dev-dependencies?最好的设置方法是什么,这样也许我就不必担心了?

这是我的服务器代码的快照:

// webpack -> HMR
const webpack = require("webpack");
const webpackConfig = require("../webpack.config");
const compiler = webpack(webpackConfig);

// webpack HMR init
app.use(
    require("webpack-dev-middleware")(compiler, {
        noInfo: false,
        publicPath: webpackConfig.output.publicPath,
    })
);
app.use(require("webpack-hot-middleware")(compiler));

...

app.get("/", async (req, res) => {
    const initialContent = await serverRender();
    res.render("index", {
        ...initialContent,
    });
});

app.listen(port, () => {
    console.log(`Express application listening on port ${port}`);
});

您应该将您的 HMR 代码(或者实际上,任何 development/environment 特定设置)包装到它自己的区域中。我不建议将它从您的代码中删除,因为您可能会返回应用程序并想要更新某些内容。拥有 HMR 是一件相当不错的奢侈,所以我只想让你的代码嗅探环境,如果是开发,运行 相关代码。不然就别运行了。

How do you detect the environment in an express.js app?