Webpack sapper网页包警告:';模式';选项尚未设置
我不是一个网页冠军,当我使用“npx出口工兵”时,我有这个警告Webpack sapper网页包警告:';模式';选项尚未设置,webpack,config,sapper,Webpack,Config,Sapper,我不是一个网页冠军,当我使用“npx出口工兵”时,我有这个警告 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
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/
我试图根据文档更改配置,但什么也没发生(或者在尝试使用CLI时出错)
我应该改变什么来切换到开发模式而不是默认的生产模式?
非常感谢
这是网页包配置文件:
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,
},
};
const webpack=require(“webpack”);
常量路径=要求(“路径”);
const config=require(“sapper/config/webpack.js”);
const-pkg=require(“./package.json”);
//const mode=process.env.NODE_env;简短回答
在webpack.config.js
中,更改所有出现的模式:process.env.NODE_env,
为模式,
。然后在执行时设置const mode='development'
长答案
这是因为客户端、服务器和服务工作者的配置不一致地使用了mode
。客户端使用mode:mode
,而服务器和服务工作者使用mode:process.env.NODE\u env
。Webpack抱怨没有设置mode
,因为process.env.NODE\u env
是未定义
可选
您还可以将package.json中的export
脚本修改为
"export": "NODE_ENV='development' sapper export"
然后运行npm运行导出