Saya mencoba menyiapkan lingkungan untuk aplikasi Node.js. tapi saya mendapatkan kesalahan ini setiap waktu.
"NODE_ENV" tidak dikenali sebagai perintah internal atau eksternal, perintah yang dapat dijalankan atau file batch.
Apa artinya ini dan bagaimana saya bisa menyelesaikan masalah ini?
Saya menggunakan Windows dan juga mencoba set NODE_ENV=development
tetapi tidak berhasil.
Saya menulis modul untuk ini: win-node-env .
Itu menciptakan
NODE_ENV.cmd
yang menetapkanNODE_ENV
variabel lingkungan dan menumbuhkan proses anak dengan sisa perintah dan argumennya.Cukup instal (secara global), dan jalankan perintah skrip npm Anda, itu akan membuatnya otomatis berfungsi.
sumber
untuk windows digunakan
&
di antara perintah juga. Suka,sumber
NODE_ENV
akan menjadi 'pengembangan' (ruang putih antara 't' dan '&' akan dimuat olehNODE_ENV
).trim()
nilai nanti untuk membuatprocess.env.NODE_ENV == 'production'
pekerjaan. Pokoknya untuk menghindari ini di oneliner?"test-unit": "SET NODE_ENV=test & mocha --require co-mocha 'test.js'"
salah"test-unit": "SET NODE_ENV=test & mocha --require co-mocha test.js"
benar . Anda perlu menghapus' '
sekitar file js.npm install "cross-env"
modul.cross-env NODE_ENV=development node foo.js
. Maka Anda dapat menjalankan sejenisnyanpm run build
.sumber
cross-env
dependensi dipackage.json
npm install --save-dev cross-env
; ini juga membantu dengan kesalahan'env' is not recognized as an internal or external command
ketika skrip npm mengatakanenv VARNAME=varvalue && ...
(hapus saja env dan masukkan cross-env sebagai gantinya). Tidak perlu bagi pengembang untuk menginstal sesuatu secara global atau memiliki skrip npm yang berbeda untuk platform yang berbeda!Gunakan menang-simpul-env , Untuk menggunakannya hanya menjalankan perintah di bawah ini pada Anda
cmd
ataupower shell
ataugit bash
:Setelah itu semuanya seperti Linux.
sumber
akan menyebabkan NODE_ENV berisi ruang di bagian akhir:
Seperti disebutkan dalam komentar di sini , gunakan ini sebagai gantinya:
sumber
Mengubah skrip Anda untuk mengakomodasi Windows adalah masalah besar. Mencoba mencari terjemahan Windows yang sesuai dan memelihara 2 set skrip bukanlah cara untuk menjalani hidup Anda.
Jauh lebih mudah untuk mengkonfigurasi npm untuk menggunakan bash pada Windows dan skrip Anda akan berjalan seperti apa adanya.
Cukup jalankan
npm config set script-shell "C:\\Program Files\\Git\\bin\\bash.exe"
. Pastikan path ke bash executable sudah benar untuk mesin Anda. Anda mungkin harus memulai instance terminal baru agar perubahan diterapkan.Tangkapan layar di bawah menggambarkan manfaatnya.
sumber
Bagi mereka yang menggunakan Git Bash dan memiliki masalah dengan
npm run <script>
,Cukup atur npm untuk menggunakan Git Bash untuk menjalankan skrip
npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"
(ubah jalur sesuai dengan instalasi Anda)Dan kemudian npm akan menjalankan skrip dengan Git Bash, sehingga penggunaan seperti itu
NODE_ENV=
akan berfungsi dengan baik.sumber
Bekerja untukku
sumber
Untuk windows buka git bash dan coba
NODE_ENV=production node app.js
sumber
npm <scripts_entry>
, saya mendapatkan kesalahan dengan frase yang berbeda tetapi artinya setara: itu memperlakukan env var nama sebagai executable.npm run <script>
menggunakan Windows cmd sebagai default untuk menjalankan perintah. Anda dapat mengaturnya untuk menggunakan Git Bash.npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"
Dan kemudiannpm run
akan menggunakan Git Bash untuk menjalankan skrip.Sebagian besar jawaban di sana tidak membantu saya ..
Yang membantu saya adalah
NODE_ENV=production&& nodemon app/app.js
Perhatikan ruangnya. Semoga berhasil.
sumber
Jika ada orang lain datang ke sini seperti saya mencoba mencari solusi untuk kesalahan:
Alasan saya mendapatkan ini adalah karena saya memigrasikan solusi sudut dari mesin pengembangan mac ke desktop windows 10. Beginilah cara saya mengatasinya.
Lari
npm install --save-dev cross-env
masuk ke file package.json saya dan ubah semua referensi skrip dari
env <whatever>
menjadicross-env <whatever>
Kemudian perintah saya seperti:
npm run start:some_random_environment_var
sekarang berjalan dengan baik di Windows 10.sumber
process.env.NODE_ENV menambahkan spasi putih lakukan ini
sumber
Untuk windows Anda bisa melakukannya seperti
sumber