gpt4 book ai didi

vue.js - nuxt.config.js 中的条件属性

转载 作者:行者123 更新时间:2023-12-02 16:58:22 26 4
gpt4 key购买 nike

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

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

const pkg = require('./package')

module.exports = {
mode: 'universal',

// if I uncomment the following three lines, the config is OK for npm run generate.
// router: {
// base: '/app/'
// },

/*
** Headers of the page
*/
head: {
title: pkg.name,
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ hid: 'description', name: 'description', content: pkg.description }
],
link: [
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },
{ rel: 'stylesheet', href: 'https://fonts.googleapis.com/css?family=Montserrat:400,500,600&subset=latin-ext' }
]
},

/*
** Customize the progress-bar color
*/
loading: { color: '#fff' },

/*
** Global CSS
*/
css: [
'@/assets/css/main.scss',
],

/*
** Plugins to load before mounting the App
*/
plugins: [
],

/*
** Nuxt.js modules
*/
modules: [
// Doc: https://axios.nuxtjs.org/usage
'@nuxtjs/axios',
// Doc: https://bootstrap-vue.js.org/docs/
'bootstrap-vue/nuxt',
// Doc: https://github.com/vanhoofmaarten/nuxt-mq
[
'nuxt-mq',
{
// Default breakpoint for SSR
// Breakpoints are bootstrap-vue Breakpoints
// Doc: https://bootstrap-vue.js.org/docs/components/layout
defaultBreakpoint: 'default',
breakpoints: {
xs: 576, // 576 not included
sm: 768, // 768 not included
md: 992, // 992 not included
lg: 1200, // 1200 not included
xl: Infinity
}
}
]
],
bootstrapVue: {
bootstrapCSS: false, // or `css`
bootstrapVueCSS: false // or `bvCSS`
},
/*
** Axios module configuration
*/
axios: {
// See https://github.com/nuxt-community/axios-module#options
},

serverMiddleware: [
'~/api/contact'
],

/*
** Build configuration
*/
build: {
/*
** You can extend webpack config here
*/
extend(config, ctx) {
// Run ESLint on save
if (ctx.isDev && ctx.isClient) {
config.module.rules.push({
enforce: 'pre',
test: /\.(js|vue)$/,
loader: 'eslint-loader',
exclude: /(node_modules)/
})
}
}
}
}

配置适用于这两种设置(因此它可以编译,应用程序可以正常运行),但我想让它自动运行,因为我经常忘记在需要时取消注释 router 设置查看静态版本。

我没有仔细研究这个问题,只是阅读了一些 SO 问题并用 Google 搜索了一下(对于这样的事情:nuxt.js -> Howto configure production/development settings 或这样的:https://github.com/nuxt/nuxt.js/issues/2940)。

最佳答案

您可以使用环境变量,并在您的配置文件中包含此环境变量的条件:

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

运行它

关于vue.js - nuxt.config.js 中的条件属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55353726/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com