NextJS 环境变量未定义?

时间:2021-03-13 17:18:16

标签: javascript next.js

我制作了一个脚本来将一些静态数据保存到我的文件系统中,如下所示

./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 的根目录

为什么会这样?

1 个答案:

答案 0 :(得分:0)

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

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