我制作了一个脚本来将一些静态数据保存到我的文件系统中,如下所示
./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 的根目录
为什么会这样?
答案 0 :(得分:0)
我通过将以下内容添加到我的 package.json 中解决了这个问题
"dev": "NODE_ENV=local yarn create-links && next dev",
"build": "NODE_ENV=local yarn create-links && next build",