Saya mencoba mengikuti tutorial dan mengatakan:
Ada beberapa cara untuk memuat kredensial.
- Dimuat dari variabel lingkungan,
- Dimuat dari file JSON pada disk,
Kuncinya harus sebagai berikut:
USER_ID, USER_KEY
... Ini berarti bahwa jika Anda mengatur variabel lingkungan dengan benar, Anda tidak perlu mengelola kredensial di aplikasi Anda sama sekali.
Berdasarkan beberapa Googling, tampaknya saya perlu mengatur variabel process.env
? Bagaimana dan di mana saya menetapkan kredensial ini? Contoh Silakan.
sumber
fish
bukanbash
, Anda perlu menggunakan:env USER_ID=239482 my_command
. Misalnya, untuk mengatur variabel lingkungan untukdebug
pustaka node.js ' :env DEBUG='*' node some_file.js
fishshell.com/docs/current/faq.html#faq-single-envenv DEBUG=* node some_file.js
dotenv
, karena akan membaca.env
file Anda dan menerapkannya.Saya sangat merekomendasikan melihat paket dotenv.
https://github.com/motdotla/dotenv
Agak mirip dengan perpustakaan yang disarankan dalam jawaban dari @Benxamin, tetapi jauh lebih bersih dan tidak memerlukan skrip bash. Juga perlu dicatat bahwa basis kode populer dan terawat dengan baik.
Pada dasarnya Anda memerlukan file .env (yang saya sangat sarankan untuk diabaikan dari git / mercurial / etc):
Kemudian dalam file entri aplikasi Anda, masukkan baris berikut sedini mungkin:
Ledakan. Selesai 'process.env' sekarang akan berisi variabel di atas:
File '.env' tidak diperlukan sehingga Anda tidak perlu khawatir aplikasi Anda gagal karena tidak ada.
sumber
Cukup berikan nilai env pada baris perintah
sumber
Anda dapat mengatur variabel lingkungan melalui variabel global proses sebagai berikut:
Bekerja di semua platform.
sumber
Jika Anda menginginkan opsi manajemen, coba paket envs npm. Ini mengembalikan nilai lingkungan jika ditetapkan. Jika tidak, Anda dapat menentukan nilai default yang disimpan dalam variabel objek default global jika tidak di lingkungan Anda.
Menggunakan file .env ("dot ee-en-vee") atau lingkungan baik karena berbagai alasan. Individu dapat mengelola konfigurasi mereka sendiri. Anda dapat menggunakan lingkungan yang berbeda (dev, stage, prod) ke layanan cloud dengan pengaturan lingkungan mereka sendiri. Dan Anda dapat mengatur default yang masuk akal.
Di dalam
.env
file Anda, setiap baris adalah entri, seperti contoh ini:Anda tidak boleh memasukkan
.env
dalam repositori kontrol versi Anda (tambahkan ke.gitignore
file Anda ).Untuk mendapatkan variabel dari
.env
file ke lingkungan Anda, Anda dapat menggunakan skrip bash untuk melakukan hal yang samaexport NODE_ENV=development
sebelum Anda memulai aplikasi.Maka ini berlaku di javascript aplikasi Anda:
sumber
Itu tergantung pada sistem operasi Anda dan shell Anda
Di linux dengan shell bash , Anda membuat variabel lingkungan seperti ini (di konsol):
Untuk informasi lebih lanjut tentang variabel lingkungan di ubuntu (misalnya):
Variabel lingkungan di ubuntu
sumber
Seperti kata ctrlplusb, saya sarankan Anda untuk menggunakan paket
dotenv
, tetapi cara lain untuk melakukan ini adalah membuat file js dan mengharuskannya di baris pertama server aplikasi Anda.env.js:
app.js:
sumber
Pengguna Windows: perhatikan! Perintah-perintah ini direkomendasikan untuk Unix tetapi pada Windows mereka hanya sementara. Mereka menetapkan variabel hanya untuk shell saat ini, segera setelah Anda me-restart mesin Anda atau memulai shell terminal baru, mereka akan hilang.
SET TEST="hello world"
$env:TEST = "hello world"
Untuk menetapkan variabel lingkungan persisten pada Windows Anda harus menggunakan salah satu dari pendekatan berikut:
A) .env file dalam proyek Anda - ini adalah metode terbaik karena itu berarti Anda dapat memindahkan proyek Anda ke sistem lain tanpa harus mengatur vars lingkungan Anda pada sistem beore Anda dapat menjalankan kode Anda.
Buat
.env
file di root folder proyek Anda dengan konten:TEST="hello world"
Tulis beberapa kode simpul yang akan membaca file itu. Saya sarankan menginstal dotenv (
npm install dotenv --save
) dan kemudian tambahkanrequire('dotenv').config();
selama kode pengaturan simpul Anda.process.env.TEST
File env bagus untuk menyimpan kunci-api dan rahasia lain yang tidak ingin Anda miliki di basis kode Anda. Pastikan untuk menambahkannya ke
.gitignore
.B) Gunakan Powershell - ini akan membuat variabel yang dapat diakses di terminal lain. Namun berhati-hatilah, variabel akan hilang setelah Anda me-restart komputer Anda.
[Environment]::SetEnvironmentVariable("TEST", "hello world", "User")
Metode ini banyak direkomendasikan di forum Windows, tetapi saya tidak berpikir orang-orang sadar bahwa variabel tidak bertahan setelah sistem dinyalakan kembali ....
C) Gunakan Windows GUI
sumber
Langkah 1: Tambahkan variabel lingkungan Anda ke file yang sesuai. Misalnya, lingkungan pementasan Anda dapat dipanggil
.env.staging
, yang berisi variabel lingkunganUSER_ID
danUSER_KEY
, khusus untuk lingkungan pementasan Anda.Langkah 2: Di
package.json
file Anda , tambahkan berikut ini:kemudian panggil di skrip deploy Anda seperti ini:
Pengaturan super sederhana dan bekerja seperti pesona!
Sumber: https://medium.com/@tacomanator/environmentments-with-create-react-app-7b645312c09d
sumber
Untuk pengguna windows, pertanyaan Stack Overflow dan jawaban teratas ini cukup berguna tentang cara mengatur variabel lingkungan melalui baris perintah
Bagaimana saya dapat mengatur NODE_ENV = produksi di Windows?
sumber
Datang di alat yang bagus untuk melakukan ini.
simpul-env-file
Mem-parsing dan memuat file lingkungan (mengandung ekspor variabel ENV) ke lingkungan Node.js, yaitu
process.env
- Menggunakan gaya ini:sumber
Sebagai jawaban ekspansi @ctrlplusb,
saya sarankan Anda juga melihat-lihat
env-dot-prop
paket.Ini memungkinkan Anda untuk mengatur / mendapatkan properti dari
process.env
menggunakan adot-path
.Mari kita asumsikan bahwa Anda
process.env
mengandung yang berikut:Kemudian Anda dapat memanipulasi variabel lingkungan seperti itu:
Ini membantu Anda untuk menguraikan variabel lingkungan dan menggunakannya sebagai objek konfigurasi di aplikasi Anda.
Ini juga membantu Anda menerapkan konfigurasi 12 faktor .
sumber
Cara yang sangat baik untuk melakukan variabel lingkungan yang berhasil saya gunakan adalah di bawah ini:
A. Memiliki file konfigurasi yang berbeda :
dev.js // ini memiliki semua variabel lingkungan hanya untuk pengembangan
File ini berisi:
stage.js // ini memiliki semua variabel lingkungan untuk pengembangan saja
qa.js // ini memiliki semua variabel lingkungan untuk pengujian qa saja
File ini berisi:
CATATAN : nilainya berubah dengan lingkungan, sebagian besar, tetapi kunci tetap sama.
Anda dapat memiliki lebih banyak
z__prod.js // ini memiliki semua variabel lingkungan untuk produksi / hanya hidup.
CATATAN: File ini tidak pernah digabungkan untuk digunakan
Masukkan semua file konfigurasi ini ke / config / folder
CATATAN : Nama prod berbeda dari yang lain, karena tidak akan digunakan oleh semua.
B. Atur variabel lingkungan OS / Lambda / AzureFunction / GoogleCloudFunction dari file konfigurasi
Sekarang idealnya, variabel konfigurasi ini dalam file, harus pergi sebagai variabel lingkungan OS (atau, variabel fungsi LAMBDA, atau, variabel fungsi Azure, Fungsi Google Cloud, dll.)
jadi, kami menulis otomatisasi di OS Windows (atau lainnya)
Asumsikan kita menulis file bat ' setenv ', yang mengambil satu argumen yaitu lingkungan yang ingin kita atur
Sekarang jalankan " setenv dev "
a) Ini mengambil input dari variabel argumen yang diteruskan ('dev' untuk saat ini)
b) membaca file yang sesuai ('config \ dev.js')
c) menetapkan variabel lingkungan di OS Windows (atau lainnya)
Sebagai contoh,
Konten setenv.bat mungkin:
Konten setenv.js mungkin:
Itu saja , lingkungan Anda siap digunakan.
Ketika Anda melakukan ' setenv qa ', semua variabel lingkungan qa akan siap digunakan dari qa.js, dan siap untuk digunakan oleh program yang sama (yang selalu meminta process.env.someEnvKey1, tetapi nilai yang didapat adalah qa satu).
Semoga itu bisa membantu.
sumber
Jadikan hidup Anda lebih mudah dengan dotenv-webpack . Cukup instal
npm install dotenv-webpack --save-dev
, lalu buat.env
file di root aplikasi Anda (ingat untuk menambahkan ini.gitignore
sebelum Andagit push
). Buka file ini, dan atur beberapa variabel lingkungan di sana, seperti misalnya:Sekarang, di konfigurasi webpack Anda tambahkan:
Hanya
const Dotenv = require('dotenv-webpack');
,,plugins: [new Dotenv()]
dan tentu sajamodule.exports = webpackConfig; // Export all custom Webpack configs.
diperlukan. Namun, dalam beberapa skenario Anda mungkin mendapatkan beberapa kesalahan. Untuk ini, Anda memiliki solusinya dan menyiratkan bagaimana Anda dapat memperbaiki kesalahan tertentu.Sekarang, di mana pun Anda inginkan, Anda hanya dapat menggunakan
process.env.ENV_VAR_1
,process.env.ENV_VAR_2
,process.env.ENV_VAR_3
dalam aplikasi Anda.sumber
Saya mendapatkan undefined setelah menetapkan sistem env var. Ketika saya meletakkan APP_VERSION di User env var, maka saya dapat menampilkan nilai dari node melalui process.env.APP_VERSION
sumber
Jika Anda menggunakan mac / linux dan Anda ingin mengambil parameter lokal ke mesin yang Anda gunakan, inilah yang akan Anda lakukan:
sumber