我已经运行了npm pack命令来将项目(一个React应用程序)打包到一个tarball中。我可以在其中看到package.json仍然存在,但是当我在tarball上运行npm install时,我只会得到package-lock.json文件,这意味着我无法运行npm start等在package.json。我在这里错过了一步吗?在以下文档页面https://docs.npmjs.com/cli-documentation/
上似乎看不到任何内容答案 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
目录在您的路径上。