【问题标题】:nextjs - next build with NODE_ENV=developmentnextjs - 下一个使用 NODE_ENV=development 构建
【发布时间】: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 并检查我认为的情况。

标签: reactjs next.js


【解决方案1】:

issue #9123, (Oct 18, 2019)

NODE_ENV 是一个不能更改的保留环境变量。 唯一有效的值是生产、开发和测试。

如果您需要在不同的生产环境中更改应用行为 环境,请使用不同的变量,如 APP_ENV。

还有issues #17032 (Sep 12, 2020)

process.env.NODE_ENV 只有 2 个可能的值 developmentproduction。如果未将其设置为该值,您将遇到各种情况 您获得的库边缘案例(尤其是在 node_modules 中) 严重去优化的结果。例如。如果您运行性能测试 如果process.env.NODE_ENV 不是,你会得到明显更差的结果 投入生产

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-13
    • 2018-09-15
    • 1970-01-01
    • 2021-07-10
    • 2021-01-06
    • 1970-01-01
    • 2022-10-17
    • 2021-07-30
    相关资源
    最近更新 更多