NextJS环境变量未定义



我制作了一个脚本来将一些静态数据保存到我的文件系统中,它看起来像这个

/lib/createLinks.js

const contentful = require('contentful')
const fs = require('fs')
require('dotenv').config({
path: `.env.${process.env.NODE_ENV}`,
})
async function createLinks() {
const client = contentful.createClient({
space: process.env.NEXT_CONTENTFUL_SPACE_ID,
accessToken: process.env.NEXT_CONTENTFUL_ACCESS_TOKEN,
})
const data = await client.getEntries({
content_type: 'news',
})
fs.writeFile('./data/links.json', JSON.stringify(data), (err) => {
if (err) throw err
console.info('Global data written to file')
})
}
async function main() {
try {
await createLinks()
} catch (err) {
throw new Error(err)
}
}
main()

"create-links": "node ./lib/createLinks",
"dev": "yarn create-links && next dev",
"build": "yarn create-links && next build",

然而,我无法访问我的环境变量,当我尝试运行此程序时,这些变量是未定义的。

我的变量被放在.env.local 的根目录中

为什么会发生这种情况?

我通过在我的package.json 中添加以下内容解决了这个问题

"dev": "NODE_ENV=local yarn create-links && next dev",
"build": "NODE_ENV=local yarn create-links && next build",

由于某种原因,这个+node_env=local帮助了我的情况

process.env['NEXT_PUBLIC_BACKEND_URL']

最新更新