繁体   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