如何从我的节点应用程序运行npm pack
命令?
类似这样的东西:
const npm = require('npm')
const result = npm.pack('sourcefolder', 'targetdir');
//result ==== down..
答案 0 :(得分:0)
可以从命令行运行的所有内容都可以从JS运行,所以可以:
require('child_process').exec('npm pack', console.log)
答案 1 :(得分:0)
您不必运行npm pack
命令来创建tarball。
只需使用tar
软件包:
const tar = require('tar');
const fstream = require('fstream');
function pack({ path, target }) {
fstream
.Reader({ path, type: 'Directory' })
.pipe(tar.Pack({ noProprietary: true }))
.pipe(fs.createWriteStream(target));
}
const name = 'your-folder-package';
pack({
path: path.join(__dirname, 'packages', name),
target: path.join(__dirname, 'dist/packages', `${name}.tar`),
});