如何从我的应用程序运行npm pack命令?

时间:2019-01-19 08:33:06

标签: node.js npm

如何从我的节点应用程序运行npm pack命令?

类似这样的东西:

const npm = require('npm')
const result = npm.pack('sourcefolder', 'targetdir');

//result ==== down..

2 个答案:

答案 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`),
});