你可以编写一个从中获取结果的插件 hashsum 并简单地使用 fs 修改你的json。
hashsum
fs
这是一个天真的实现:
const fs = require('fs') const path = require('path') const through = require('through2') const hashsum = require('gulp-hashsum') const modifyJson = ({ fileName, src, property }) => through.obj((file, _, cb) => { const { name } = path.parse(file.path) if (name !== fileName) return cb(null, file) const pathToJson = path.resolve(__dirname, src) if (!fs.existsSync(pathToJson)) { return cb(new Error(`${src} doesn't exist.`), file) } const json = JSON.parse(fs.readFileSync(pathToJson, 'utf8')) const content = JSON.parse(file.contents) if (typeof json[property] === 'undefined') console.warn(`${src} doesn't has any property named '${property}' A new one will be created.`) json[property] = content fs.writeFileSync(pathToJson, JSON.stringify(json)) return cb(null, file) })
用法:
exports.modifyJson = () => src(['app/**/*.js']) .pipe(hashsum({ stream: true, json: true, })) .pipe(modifyJson({ fileName: 'SHA1SUMS', src: './test.json', property: 'hashTable', }))
我有这个代码 要旨 这里。