Javascript:在gulpfile.js中获取package.json数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript:在gulpfile.js中获取package.json数据相关的知识,希望对你有一定的参考价值。

不是gulp特定的问题本身,但如何从gulpfile.js中的package.json文件获取信息;例如,我想获取主页或名称并在任务中使用它。

答案

不要使用require('./package.json')进行手表处理。使用require将解析模块作为第一个请求的结果。因此,如果您正在编辑package.json,那么除非您停止监视进程并重新启动它,否则这些编辑将无效。对于gulp监视进程,最好使用bitlinguist的方法,因为它将重新读取文件并在每次执行任务时解析它。

var fs = require('fs');

var json = JSON.parse(fs.readFileSync('./package.json'));
另一答案

这不是特定的。

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

更新:

请注意,“require”将缓存读取结果 - 这意味着您不能要求,写入文件,然后再次要求并期望更新结果。

另一答案

这是一个很好的解决方案@Mangled Deutz。我自己第一次这样做但它没有用(回到那一秒),然后我尝试了这个解决方案:

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

现在您应该看到这有点冗长(尽管它有效)。 require('./package.json')是最好的解决方案:

Tip

-remember在文件名前添加'./'。我知道它很简单,但它是require方法工作和不工作之间的区别。

另一答案

如果你从NPM触发gulp,比如使用“npm run build”或其他东西

(这仅适用于NPM的gulp run触发器)

process.env.npm_package_Object

对于更深的对象,这应该用下划线分隔。

如果你想在package.json中读取一些特定的配置,就像你想要读取你在package.json中创建的配置对象一样

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

然后你可以使用

process.env.npm_package_**config_isClient**

以上是关于Javascript:在gulpfile.js中获取package.json数据的主要内容,如果未能解决你的问题,请参考以下文章

Javascript:在gulpfile.js中获取package.json数据

javascript Gulpfile.js(第4版)

javascript Gulp 4示例gulpfile.js

javascript gulpfile.js

javascript 各种hexo gulpfile.js收集

javascript 我-gulpfile.js