资讯专栏INFORMATION COLUMN

如何发布第一个属于自己的npm包

JerryWangSAP / 3272人阅读

摘要:更新已经发布的包更新包的操作和发布包的操作其实是一样的但要注意的是,每次更新时,必须修改版本号后才能更新,比如将修改为后就能进行更新发布了。

什么是NPM?

NPM是随同NodeJS一起安装的javascript包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

允许用户从NPM服务器下载别人编写的第三方包到本地使用。

允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。

允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

发布前的准备 1. 注册一个npm账号

前往NPM官网进行注册

2. 创建一个简单的包

在本地创建一个项目文件夹sugars_demo (名字自己取,不要和NPM上已有的包名重复冲突就好)
然后通过终端进入文件夹(路径每个人不一样)

cd sugars_demo

接着可以通过命令创建一个包信息管理文件package.json

npm init

一路回车或根据包的内容来填写相关信息后,package.json内容大概如下

{
  "name": "sugars_demo",
  "version": "1.0.0",
  "description": "A demo",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": ""
  },
  "keywords": [
    "sugars",
    "demo"
  ],
  "author": {
    "name": "sugars",
    "email": "343166031@qq.com"
  },
  "license": "MIT"
}

接着在sugars_demo文件夹里创建一个index.js文件,然后简单敲几行代码

;(function (global, factory) {
  typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() :
    typeof define === "function" && define.amd ? define(factory) :
      global.moduleName = factory()
}(this, (function () {
  var test = {
    sayHi: function () {
      console.log("hi");
    }
  };

  return test
})))

到这里一个简单的包就创建好了。
如果想再完善一下的话,还可以在包根目录下创建README.md文件,里面可以写一些关于包的介绍信息,最后发布后会展示在NPM官网上。

开始发布创建好的包

使用终端命令行
如果是第一次发布包,执行以下命令,然后输入前面注册好的NPM账号,密码和邮箱,将提示创建成功

npm adduser

如果不是第一次发布包,执行以下命令进行登录,同样输入NPM账号,密码和邮箱

npm login

注意:npm adduser成功的时候默认你已经登陆了,所以不需要再进行npm login了

接着先进入项目文件夹下,然后输入以下命令进行发布

npm publish

当终端显示如下面的信息时,就代表版本号为1.0.0的包发布成功啦!前往NPM官网就可以查到你的包了

myMacBook-Pro:sugars_demo sugars$ npm publish
+ sugars_demo@1.0.0

如果遇到显示以下信息,比如

npm ERR publish 403

You do not have permission to publish "bootstrap".Are you logged in as
the corrent user?:bootstrap

意思就是你没有权限发布名为“bootstrap”的包,显然这个鼎鼎有名的包已经有人发布了,所以你只能另取它名。

更新已经发布的包

更新包的操作和发布包的操作其实是一样的

npm publish

但要注意的是,每次更新时,必须修改版本号后才能更新,比如将1.0.0修改为1.0.1后就能进行更新发布了。
这里的包版本号有一套规则,采用的是semver(语义化版本),通俗点意思就是版本号:大改.中改.小改

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/93625.html

相关文章

  • 从零开始写一个npm,一键生成react组件(偷懒==提高效率)

    摘要:后言有了我们可以做很多很多的事情以后开发新模块的时候就可以偷懒了纯手打给个赞可好模版 前言 最近写项目开发新模块的时候,每次写新模块的时候需要创建一个组件的时候(包含组件css,index.js,组件js),就只能会拷贝其他组件修改名称 ,但是写了1-2个后发现效率太低了,而且极容易出错,所以自己写一个npm包来减少工作量,下面就一步一步来创建一个属于自己的npm仓库 首先第一步创建一...

    Labradors 评论0 收藏0
  • 构建自己npm 简单实现

    摘要:使用介绍是随同一起安装的包管理工具,能解决代码部署上的很多问题,常见的使用场景有以下几种允许用户从服务器下载别人编写的第三方包到本地使用。允许用户将自己编写的包或命令行程序上传到服务器供别人使用。 NPM 使用介绍 NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用。...

    frontoldman 评论0 收藏0
  • 在2018年如何优雅开发一个typescript语言npm

    摘要:实际开发中,如果每个包都去走一遍这些步骤,步骤好像确实有点多。 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由小明plus发表 很多时候,我们可能想要用 typescript 语言来创建一些模块,并提交到 npm 供别人使用, 那么在 2018 年,如果我想要初始化这样的一个模块,我需要做哪些步骤呢?: 答案是:创建一个优雅的,对开发者友好的模块,至少需要以下 15...

    Karuru 评论0 收藏0
  • 技术存档:建站(一)

    摘要:自建主要花费在购买云服务器上和静态资源托管上,剩余工作一力承担。 写这系列文章的初衷是:对自己知识面广度和深度的确定,并以此调整后续的发展和学习方向。希望能达到温故而知新的效果。 选择从建站入手,是因为这个是最常见的要求。对于公司而言,网站是展示公司主旨、业务、沟通方式、宣传营销的必选方案,一个符合公司形象的高质量官网,必然能让客户留下良好的第一印象。,对个人而言,博客是表达其特有的思...

    chnmagnus 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<