Vue.js nuxt.config.js中的条件属性

Vue.js nuxt.config.js中的条件属性,vue.js,configuration,nuxt.js,Vue.js,Configuration,Nuxt.js,我正在使用nuxt.js开发一个网站,并希望在nuxt.config.js中有一个有条件的配置选项:我希望在运行npm run generate时更改路由器基础(构建静态) 以下是开发环境的完整配置文件(npm-run-dev): 配置在这两种设置下都可以正常工作(因此它可以编译,应用程序运行正常),但我想让它自动运行,因为当我想查看静态版本时,我经常忘记取消对路由器设置的注释 我没有太多地研究这个问题,只是阅读了一些SO问题并在Google上搜索了一下(对于像这样的东西:或这样:)。您可以使用

我正在使用nuxt.js开发一个网站,并希望在nuxt.config.js中有一个有条件的配置选项:我希望在运行npm run generate时更改路由器基础(构建静态)

以下是开发环境的完整配置文件(npm-run-dev):

配置在这两种设置下都可以正常工作(因此它可以编译,应用程序运行正常),但我想让它自动运行,因为当我想查看静态版本时,我经常忘记取消对路由器设置的注释


我没有太多地研究这个问题,只是阅读了一些SO问题并在Google上搜索了一下(对于像这样的东西:或这样:)。

您可以使用一个环境变量,并在配置文件中包含一个关于这个环境变量的条件:

const pkg = require('./package')

let config = {
  mode: 'universal',
  head: {},
  ...
}

if (process.env.NODE_GENERATION_TYPE === 'static') {
  config.router = {
    base: '/app/'
  }
}

module.exports = config
然后,您需要使用以下命令行生成静态网站:

NODE_GENERATION_TYPE=static npm run generate
您还可以将脚本设置为
package.json
,使其更美观:

{
  "scripts": {
    "generate:static": "NODE_GENERATION_TYPE=static dev",
    "dev": "..."
  },
  ...
}
然后,您可以使用
npm run generate:static

运行它。谢谢,您的答案是有效的:)我真的希望,对于一个比我更熟悉这个主题的人来说,这有点容易。我所做的唯一修改是将“generate:static”:“NODE\u GENERATION\u TYPE=static numxt generate”放在package.json中,但这并没有真正改变任何事情
{
  "scripts": {
    "generate:static": "NODE_GENERATION_TYPE=static dev",
    "dev": "..."
  },
  ...
}