npm publish 发布

前言

  我们npm publish发布的时候,一定是本地文件发布到远程仓库,并且登录到http://registry.npmjs.org(即npm adduser或npmlogin)之后,才可以进行发布。

一、npm包结构(编写)

  npm包实际是一个存档文件,即一个目录直接打包为.zip或tar.gz格式的文件,安装后解压还原为目录。完全符合CommonJS规范的包目录应该包含如下这些文件。

  package.json : 包描述文件。

  bin: 用于存放可执行二进制文件的目录。

  lib:用于存放javascript代码的目录。

  doc:用于存放文档的目录。

  test: 用于存放单元测试用例的代码。

  我们开发npm包模块的时候,就可以按照以上目录结构,进行开发。

二、npm包发布

  1.npm init 

  生产package.json文件,里面要注意参数,repository:""一定要填写仓库地址,因为最后npmjs,会从线上仓库获取。

  2.注册包仓库账号

  为了维护包,NPM必须要使用仓库账号才允许将包发布到仓库中。注册账号的命令是npm adduser。这也是提问式的交互,按顺序进行即可:

npm adduser
Username:pingfan
Email:(xxx@sinaapp.com)

  如果已经注册账号:

  则我们用npm login 登录即可

  证明是否登录成功:

  npm who am i

  3.上传npm包

  上传包的命令是 npm publish <floder> .在刚刚创建的package.json文件所在的目录下,执行npm publish .开始上传,相关代码如下:

npm publish .
npm http PUT http://registry.npmjs.org/net-scan
npm http 400 http://registry.npmjs.org/net-scan
npm http PUT http://registry.npmjs.org/net-scan
npm http 201 http://registry.npmjs.org/net-scan
npm http GET http://registry.npmjs.org/net-scan
npm http 200 http://registry.npmjs.org/net-scan
npm http PUT http://registry.npmjs.org/net-scan/-/net-scan-0.0.0.tgz/-rev/1-96a1
2fd6f9e8e5359489a9f59d114f90
npm http 201 http://registry.npmjs.org/net-scan/-/net-scan-0.0.0.tgz/-rev/1-96a1
2fd6f9e8e5359489a9f59d114f90
npm http PUT http://registry.npmjs.org/net-scan/0.0.0/-tag/latest
npm http 201 http://registry.npmjs.org/net-scan/0.0.0/-tag/latest
+ net-scan@0.0.0

  如果你以后修改了代码,然后想要同步到 npm 上的话请修改 package.json 中的 version 然后再次 publish,更新的版本上传的版本要大于上次

 

 

  4.安装包

  为了体验和测试自己上传的包,可以换一个目录执行 npm install xxx --save 安装它:

npm install xxx -save --registory=http://registory.npmjs.org

  

  管理包权限:

  通常,一个包只有一个拥有权限进行发布。如果需要多人进行发布,可以使用npm owner 命令帮助你管理包的所有者:

  npm owner ls eventproxy

  使用这个命令,也可以添加包的拥有者,删除一个包的拥有者:

npm owner ls <package name>
npm owner add <user> <package name>
npm owner rm <user> <package name>

三、npm包发布问题及解决

  

  1.使用 cnpm 的注意报错:

no_perms Private mode enable, only admin can publish this module

  设置回原本的就可以了:

npm config set registry http://registry.npmjs.org 

  2.npm包package.json中registory属性一定要填写,每次publish npm时package.json中version版本一定要大于上一次。

    3.npm publish failed put 500  unexpected status code 401这样的报错信息,往往是没有登录成功,操作npm login

 

资料参考:

  npm publish 发布示例

  编写自己的NPM包

  

转载于:https://www.cnblogs.com/pingfan1990/p/4824658.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: npm publish是一个用于发布npm包的命令。使用方法如下: 1. 确保你已经登录了npm账号,使用命令`npm login`进行登录。 2. 在你要发布npm包的根目录下执行`npm publish`命令。 3. 如果你的包名已被占用或者你的包版本低于已发布的版本,则会提示错误。你需要修改包的名称或者版本号再次发布。 4. 发布成功后,你的包就会被上传到npm registry,供其他开发者使用。 注意:在发布之前,你需要在你的包的package.json文件中指定包的名称、版本、描述等信息。 ### 回答2: npm publish 是将你的代码包发布npm(Node Package Manager)注册表中,以供其他开发者使用的命令。 npm 是 JavaScript 的包管理工具,使用它可以安装、共享、分发代码和管理项目的依赖关系。 使用 npm publish 发布代码包之前,你需要先在 npm 注册网站上创建一个账号。然后,通过命令行工具进入到你的代码包根目录,使用 npm login 命令登录 npm,输入你的用户名、密码和邮箱。 在登录成功之后,你可以使用 npm init 命令初始化你的项目,在生成的 package.json 文件中配置项目的相关信息,如名称、版本、作者等。 在完成初始化后,你可以使用 npm publish 命令将你的代码包发布npm 注册表中。这个命令会将你的代码上传到 npm 的服务器上,并为你的项目创建一个唯一的版本号。其他开发者可以通过 npm install 命令安装你的代码包,并在他们的项目中使用。 在发布代码包之前,你需要确认你的代码是可用的,并且已经做好了测试和文档。 需要注意的是,如果你希望更新已发布的代码包,可以修改 package.json 文件中的版本号,并再次运行 npm publish 命令。npm 会自动将新版本号发布npm 注册表上。 总的来说,npm publish 是通过 npm 工具将你的代码包发布npm 注册表中,并使其他开发者能够安装和使用你的代码包。 ### 回答3: npm publish是将自己开发的模块发布npm的注册中心,供其他开发者使用的命令。使用npm publish可以将代码和其他相关文件上传至npm的服务器,并使其可以被其他项目引用。 在使用npm publish之前,需要先在终端中进入项目的根目录,然后执行npm init命令,按照提示填写项目的相关信息,包括包名、版本号、作者、描述等。填写完毕后,会生成一个package.json文件,该文件是项目的配置文件。 在确保package.json文件中的信息正确无误后,可以执行npm publish命令进行发布。执行该命令后,npm会将项目的代码和其他文件上传到npm的服务器上,并生成一个唯一的版本号。 值得注意的是,每次执行npm publish命令都会发布一个新的版本,因此在发布前需要确保版本号的更新是正确的。 另外,如果想要发布的模块是私有的,可以在执行npm publish命令时加上--access private参数,这样只有项目的拥有者可以访问该模块。 一旦成功执行npm publish命令,其他开发者就可以通过npm install来安装该模块并在自己的项目中使用了。 总结来说,npm publish是用于将自己开发的模块发布npm注册中心的命令,通过执行该命令可以将代码和其他相关文件上传至npm服务器,供其他开发者使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值