next如何在javascript文件中访问env



我不能访问我的环境变量以外的下2.15,当我部署我可以看到$nuxt.context.$config在浏览器中有正确的变量,但在自定义js文件我不能访问process.env.baseURL它返回未定义

// nuxt.config.ts
module.exports = {
ssr: false,
buildModules: [  
['@nuxtjs/dotenv', { systemvars: true }],
],
publicRuntimeConfig: {
baseURL: process.env.baseURL,
}
env: {
baseURL: process.env.baseURL,
}
}

这在页面/组件/中间件中都很好,我可以使用$config对象访问值

问题是我有一个JS文件,我想导入baseURL的值在其他地方使用,这返回为未定义

//constant.ts
const { publicRuntimeConfig, env } = require('./nuxt.config.ts');
const { baseURL, VPN_IP, ADMIN_MODE } = publicRuntimeConfig;
console.info('constant: baseURL', baseURL); // also undefined
export const GRPC_HOST = process.env.baseURL;  //this is undefined

我已经尝试将启动命令从nuxt start更改为node server/index.ts


const express = require('express');
const consola = require('consola');
require('dotenv').config();
const { Nuxt, Builder } = require('nuxt');
const app = express();
// Import and Set Nuxt.js options
const config = require('../nuxt.config.ts');
config.dev = process.env.NODE_ENV !== 'production';
async function start() {
// Init Nuxt.js
const nuxt = new Nuxt({ ...config, env: { baseURL: process.env.baseURL } });
const { host, port } = nuxt.options.server;
await nuxt.ready();
// Build only in dev mode
if (config.dev) {
const builder = new Builder(nuxt);
await builder.build();
}
// Give nuxt middleware to express
app.use(nuxt.render);
// Listen the server
app.listen(port, host);
consola.ready({
message: `Server listening on https://${host}:${port} , environment:: ${process.env.NODE_ENV} baseURL:: ${process.env.baseURL}`,
badge: true,
});
}
start();

在服务器日志中我可以看到baseURL设置在这里NODE_ENV设置为生产

尝试用$config创建一个javascript文件。首先,需要确保正确导入了$config对象。您可以使用window.$nuxt.$config和变量

试试这个:

const baseURL = window.$nuxt.$config.baseURL
console.info('constant: baseURL', baseURL)
export const GRPC_HOST = baseURL

相关内容

  • 没有找到相关文章