【发布时间】:2019-12-15 21:27:24
【问题描述】:
我想将我的nextjs 项目构建为开发模式。
我试过了
package.json
{
...
"scripts": {
"dev": "next",
"build:dev": "set NODE_ENV=development & next build",
"build:prod": "set NODE_ENV=production & next build",
"start:dev": "set NODE_ENV=development & next start",
"start:prod": "set NODE_ENV=production & next start"
}
...
}
next.config.js
module.exports = withSass({
env: {
baseUrl: process.env.NODE_ENV === "development" ? "devServerURL": "prodServerURL"
}
});
但我无法实现我想要的。
所以,我尝试了一些改变。
package.json
"scripts": {
"dev": "next",
"build": "next build",
"start:dev": "set NODE_ENV=development & next start",
"start:prod": "set NODE_ENV=production & next start"
}
但它也不起作用。
如何使用开发模式构建next?
提前致谢。
编辑
我的操作系统是 Windows 10。
【问题讨论】:
-
根据github.com/zeit/next.js/issues/3605的说法,目前是不可能的。
-
相反,您似乎无法在下一个开发命令中设置 NODE_ENV = production
-
Next.js 根据您的启动方式提供您正在使用的环境。请注意,如果您使用 next dev 命令,它将以开发模式启动服务。如果您下一次构建 && 下一次启动,它将生成一个生产版本。要实现您想要做的事情,请使用 .env.development 和 .env.production。这两个文件将根据您启动的环境加载。您可以使用相同的变量 (SERVER_URL=server.depending.on.environment) 并在代码中使用 process.env.SERVER_URL 调用它。
-
Wontfixed: github.com/vercel/next.js/issues/4022#issuecomment-374010365 ... 我只是要创建一个辅助
NODE_ENV_OVERRIDE并检查我认为的情况。