簡體   English   中英

Javascript:在 gulpfile.js 中獲取 package.json 數據

[英]Javascript: get package.json data in gulpfile.js

本身不是 gulp 特定的問題,而是如何從 gulpfile.js 中的 package.json 文件中獲取信息; 例如,我想獲取主頁或名稱並在任務中使用它。

這不是特定於 gulp 的。

var p = require('./package.json')
p.homepage

更新:

請注意,“require”將緩存讀取結果 - 這意味着您不能要求,寫入文件,然后再次要求並期望結果被更新。

不要將require('./package.json')用於監視進程,因為使用require會將模塊解析為第一個請求的結果。

因此,如果您正在編輯package.json除非您停止監視進程並重新啟動它,否則這些編輯將不起作用。

對於gulp watch過程,最好在每次執行任務時重新讀取文件並解析它,使用節點的fs方法

var fs = require('fs')
var json = JSON.parse(fs.readFileSync('./package.json'))

這是一個很好的解決方案@Mangled Deutz。 我自己首先這樣做了,但它沒有用(稍后再回到那個),然后我嘗試了這個解決方案:

# Gulpfile.coffee
requireJSON = (file) ->
    fs = require "fs"
    JSON.parse fs.readFileSync file

現在您應該看到這有點冗長(即使它有效)。 require('./package.json')是最好的解決方案:

提示

-記得在文件名前加上'./'。 我知道它很簡單,但它是 require 方法工作和不工作之間的區別。

如果你從 NPM 觸發 gulp,比如使用“ npm run build ”或其他東西

(這僅適用於 NPM 的 gulp 運行觸發器)

process.env.npm_package_對象

對於更深的對象,這應該用下划線分隔。

如果您想讀取 package.json 中的某些特定配置,就像您想讀取您在 package.json 中創建的配置對象一樣

scripts : {
   build: gulp 
},
config : {
   isClient: false.
}

然后你可以使用

process.env.npm_package_**config_isClient**

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM