Как установить собственный путь для dotenv в nuxt

У меня есть следующий nuxt.config.js, где srcDir указывает на основное приложение, и я поместил .env за его пределы. Итак, в nuxt.config.js, как установить собственный путь в строке 1

require('dotenv').config({ path: '../.env' })

так что мой process.env работает введите здесь описание изображения

Также buildModules в nuxt.config.js выглядит следующим образом

buildModules: ["@nuxtjs/fontawesome", "@nuxtjs/dotenv"],

person Amaarrockz    schedule 15.06.2021    source источник
comment
Вы не должны размещать код в виде изображений. Скорее скопируйте пасту это как текст сюда.   -  person kissu    schedule 15.06.2021


Ответы (2)


Вы пробовали это?

const { resolve } = require('path')
require('dotenv').config({ path: resolve(__dirname,"../.env") })

Взято из этого ответа.


В противном случае похоже, что по этому вопросу тоже есть много решений: /а>


РЕДАКТИРОВАТЬ: вы можете написать это в верхней части вашего файла nuxt.config.js, вне области действия export default.

const { resolve } = require('path')
const current = resolve(__dirname)
const upper = resolve(__dirname, '..')
console.log('current', current)
console.log('upper', upper)

const testFolder = '../'

fs.readdir(testFolder, (_err, files) => {
  files.forEach((file) => {
    console.log(file)
  })
})

export default {
  publicRuntimeConfig: {
  // rest of the nuxt.config.js file below

Даю это на моей машине с Linux. введите здесь описание изображения

person kissu    schedule 15.06.2021
comment
Я использовал require('dotenv').config({путь: разрешить(__dirname,../.env)}) - person Amaarrockz; 15.06.2021
comment
Но это не работает - person Amaarrockz; 15.06.2021
comment
Вы должны выполнить console.log в указанном выше каталоге, чтобы увидеть, найдете ли вы в нем .env, и, конечно же, дважды проверить, все ли в порядке (что вы не на один уровень выше/глубже). - person kissu; 15.06.2021
comment
На самом деле размещение console.log в nuxt.config.js не отображается - person Amaarrockz; 15.06.2021
comment
есть другой способ проверить? - person Amaarrockz; 15.06.2021
comment
Он должен работать. Найдите способ узнать, как распечатать содержимое каталога __dirname. Может это проблема только с windows? - person kissu; 15.06.2021
comment
мой тоже только для Linux... позвольте мне проверить отредактированный ответ - person Amaarrockz; 15.06.2021
comment
Я пытаюсь увидеть console.log в браузере... это неправильно? - person Amaarrockz; 15.06.2021
comment
Должен ли я тогда отдельно запускать файл nuxt.config.js? - person Amaarrockz; 15.06.2021
comment
Это внутренний код, который можно запускать только в среде Node.js. Итак, вам нужно написать его на сервере. Снова отредактировал мой вопрос. Но это в основном в файле nuxt.config.js перед фактической конфигурацией. Или вы также можете сделать это в любом файле .js и вызвать для него node myFile.js. - person kissu; 15.06.2021
comment
наконец, я смог выяснить. На самом деле я не устанавливал реальный путь к файлу env в модулях сборки. Правильный путь определяется как buildModules: [@nuxtjs/fontawesome, ['@nuxtjs/dotenv', {path: '. /' }]], - person Amaarrockz; 15.06.2021

На самом деле мне нужно установить живой путь env в разделе buildModules, как показано ниже.

 buildModules: ["@nuxtjs/fontawesome", ['@nuxtjs/dotenv', { path: './' }]],
person Amaarrockz    schedule 15.06.2021