如何使用npm解压缩tarball以获取package.json文件

时间:2019-01-30 14:57:02

标签: node.js reactjs npm

我已经运行了npm pack命令来将项目(一个React应用程序)打包到一个tarball中。我可以在其中看到package.json仍然存在,但是当我在tarball上运行npm install时,我只会得到package-lock.json文件,这意味着我无法运行npm start等在package.json。我在这里错过了一步吗?在以下文档页面https://docs.npmjs.com/cli-documentation/

上似乎看不到任何内容

2 个答案:

答案 0 :(得分:1)

Tarball是一种压缩文件格式。您需要先打开包装,然后再运行npm命令。

发件人:http://www.rebol.com/docs/unpack-tar-gz.html

要解压缩tar.gz文件,可以从外壳程序使用tar命令。这是一个示例:

tar -xzf rebol.tar.gz

然后在已解压缩的目录中。您可以npm i

正如彼得在评论中指出的那样-> npm和tar是不同的资源。

和往常一样-如果您喜欢我的答案,它会帮助您批准并回答。谢谢!

答案 1 :(得分:0)

我怀疑您在找错地方了。

$ npm i my-package.tgz
npm WARN saveError ENOENT: no such file or directory, open '<...>/testdir/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '<...>/testdir/package.json'
npm WARN testdir No description
npm WARN testdir No repository field.
npm WARN testdir No README data
npm WARN testdir No license field.

+ my-package@0.0.1
added 1 package from 1 contributor in 0.711s
$ ls
node_modules package-lock.json
$ ls node_modules/my-package
<...> package.json <...>
$ node_modules/.bin/<your executable> <args>

当您npm install进行某项操作时,它总是 进入您本地node_modules项目中的npm。如果要运行可执行文件,则可以通过node_modules/.bin访问它。

如果要安装某些东西以便可以在任何地方运行,请使用npm i -g并确保全局npm bin目录在您的路径上。