繁体   English   中英

NPM Pack:重命名包目录

[英]NPM Pack: Rename package directory

我有一个小脚本,使用npm pack打包某些nodejs模块。 当我解压缩npm pack命令创建的.tgz ,其中的目录名为package 我的问题是,是否有办法将此包重命名为项目的正式名称?

的package.json

{
   "name": "package_name",
   "version": "0.0.3",
   "description": "A description",
   "main": "server.js",
   "scripts": {
      "test": "echo \"Error: no test specified\" && exit 1"
   },
   "author": "",
   "license": "ISC",
   "dependencies": {
      "request": "2.55.0"
   },
   "devDependencies": {
      "grunt": "0.4.5",
      "grunt-contrib-concat": "0.5.1"
   }
}

这是我正在使用的代码,可能会有所帮助。

npm.load('./some/path', function (er) {
    if (er) {
       res.send("er");
    }
    npm.commands.pack(['./another/path'], function (er, data) {
    if (er) {
       res.send("error");
    }

    var fileName = __dirname+"/projectName-0.0.3.tgz";
    res.sendFile(fileName, {
         headers: {
             "Content-Type": "application/x-tar"
         }
    });
});

@Kirill Slatin是正确的。 npm pack格式仅供内部使用,因此npm不能提供将名称从package更改为其他名称的权利。

但是,如果您的tar支持-s开关,则可以在提取时更改名称。 在OSX上,您可以执行以下操作:

tar -xvz -s/package/foo/ -f foo-1.0.0.tgz

(已编辑,感谢David G指出错误。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM