Jawaban:
Jangan gunakan require('./package.json')
untuk proses menonton. Menggunakan require
akan menyelesaikan modul sebagai hasil dari permintaan pertama. Jadi, jika Anda mengedit package.json, pengeditan itu tidak akan berfungsi kecuali Anda menghentikan proses jam tangan dan memulai ulang. Untuk proses menonton gulp, sebaiknya gunakan metode bitlinguist karena metode ini akan membaca ulang file dan menguraikannya setiap kali tugas Anda dijalankan.
var fs = require('fs');
var json = JSON.parse(fs.readFileSync('./package.json'));
require
dan menghapus cache dengandelete require.cache[require.resolve(FILEPATH)];
Ini tidak spesifik teguk.
var p = require('./package.json')
p.homepage
MEMPERBARUI:
Ketahuilah bahwa "require" akan menyimpan hasil baca ke dalam cache - artinya Anda tidak dapat meminta, menulis ke file, kemudian meminta lagi dan mengharapkan hasil diperbarui.
Ini adalah solusi yang bagus @Mangled Deutz. Saya sendiri pertama kali melakukannya tetapi tidak berhasil (Kembali ke itu sebentar lagi), lalu saya mencoba solusi ini:
# Gulpfile.coffee
requireJSON = (file) ->
fs = require "fs"
JSON.parse fs.readFileSync file
Sekarang Anda harus melihat bahwa ini agak bertele-tele (meskipun berhasil). require('./package.json')
adalah solusi terbaik:
-Ingat untuk menambahkan './' di depan nama file. Saya tahu itu sederhana, tetapi itu adalah perbedaan antara metode yang dibutuhkan bekerja dan tidak berfungsi.
Jika Anda memicu gulp dari NPM, seperti menggunakan " npm run build " atau semacamnya
(Ini hanya berfungsi untuk pemicu gulp run oleh NPM)
process.env.npm_package_ Object
ini harus dipisahkan dengan garis bawah untuk objek yang lebih dalam.
jika Anda ingin membaca beberapa konfigurasi khusus di package.json seperti Anda ingin membaca objek konfigurasi yang telah Anda buat di package.json
scripts : {
build: gulp
},
config : {
isClient: false.
}
maka Anda bisa menggunakan
process.env.npm_package_**config_isClient**