webpack - 工兵 webpack 警告 : 'mode' option has not been set

标签 webpack config sapper

我不是 webpack 冠军,当我使用“npx export sapper”时,我收到了这个警告

    WARNING in configuration
The 'mode' option has not been set, webpack will fallback to 'production' for this value. Set 'mode' option to 'development' or 'production' to enable defaults for each environment.
You can also set it to 'none' to disable any default behavior. Learn more: https://webpack.js.org/configuration/mode/

我试图根据文档更改配置但没有任何 react (或者当我尝试使用 CLI 时出现错误...

我应该改变什么来切换到开发模式而不是默认的生产模式?
非常感谢。

这是 webpack 配置文件:
const webpack = require("webpack");
const path = require("path");
const config = require("sapper/config/webpack.js");
const pkg = require("./package.json");


// const mode = process.env.NODE_ENV;      <- Original line
const mode = "development";      //        <- my attempt
const dev = mode === "production";

const alias = { svelte: path.resolve("node_modules", "svelte") };
const extensions = [".mjs", ".js", ".json", ".svelte", ".html"];
const mainFields = ["svelte", "module", "browser", "main"];

module.exports = {
      client: {
            entry: config.client.entry(),
            output: config.client.output(),
            resolve: { alias, extensions, mainFields },
            module: {
                  rules: [
                        {
                              test: /\.(svelte|html)$/,
                              use: {
                                    loader: "svelte-loader",
                                    options: {
                                          dev,
                                          hydratable: true,
                                          hotReload: false, // pending https://github.com/sveltejs/svelte/issues/2377
                                    },
                              },
                        },
                  ],
            },
            mode,
            plugins: [
                  // pending https://github.com/sveltejs/svelte/issues/2377
                  // dev && new webpack.HotModuleReplacementPlugin(),
                  new webpack.DefinePlugin({
                        "process.browser": true,
                        "process.env.NODE_ENV": JSON.stringify(mode),
                  }),
            ].filter(Boolean),
            devtool: dev && "inline-source-map",
      },

      server: {
            entry: config.server.entry(),
            output: config.server.output(),
            target: "node",
            resolve: { alias, extensions, mainFields },
            externals: Object.keys(pkg.dependencies).concat("encoding"),
            module: {
                  rules: [
                        {
                              test: /\.(svelte|html)$/,
                              use: {
                                    loader: "svelte-loader",
                                    options: {
                                          css: false,
                                          generate: "ssr",
                                          dev,
                                    },
                              },
                        },
                  ],
            },
            mode: process.env.NODE_ENV,
            performance: {
                  hints: false, // it doesn't matter if server.js is large
            },
      },

      serviceworker: {
            entry: config.serviceworker.entry(),
            output: config.serviceworker.output(),
            mode: process.env.NODE_ENV,
      },
};

最佳答案

简答
webpack.config.js , 更改所有出现的 mode: process.env.NODE_ENV,mode, .然后设置const mode = 'development'正如你所做的那样。
长答案
这是因为 mode不一致地用于客户端、服务器和服务 worker 的配置。是mode: mode对于客户,但 mode: process.env.NODE_ENV用于服务器和服务 worker 。 Webpack 提示 mode未设置,因为 process.env.NODE_ENV未定义。
可选
您也可以修改您的 export脚本在 package.json

  "export": "NODE_ENV='development' sapper export"
然后运行 ​​npm run export .

关于webpack - 工兵 webpack 警告 : 'mode' option has not been set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61988779/

相关文章:

babeljs - 如何在 svelte/sapper 中使用第 3 阶段语法?

来自命令行的 Webpack 开发服务器自定义参数

node.js - 解决 Webpack + Typescript 中与 Node 依赖库的类型冲突

python - Snakemake 多个配置文件?

logging - RabbitMQ SASL 日志记录

git - .ssh 配置亚马逊 ec2 和 git

javascript - Sapper 中的网络套接字

svelte - Nav 组件中未加载预加载功能

javascript - webpack --env.production 和 --mode ="production"有什么区别

d3.js - 如何使用 webpack 捆绑 d3 v4