一个NPM包从无到有原来只需要10分钟

npm (node package manager)是 JavaScript 世界的包管理工具,并且是 Node.js 平台的默认包管理工具,也是世界上最大的软件注册表,每星期大约有 30 亿次的下载量,里面包含超过 600000 个 包的结构,能够使您轻松跟踪依赖项和版本。

​package.json

package.json 是npm必须的一个文件,里面含有了许多关键性的信息。

  • 列出项目所依赖的包

  • 指定项目可以使用语义版本控制规则使用的包版本

  • 使您的构建可复制,因此更易于与其他开发人员共享

下面就是一个package.json文件,我们来看看都有哪些东西。

{
    "name": "my_package",
    "description": "",
    "version": "1.0.0",
    "main": "index.js",
    "scripts": {
      "test": "echo \"Error: no test specified\" && exit 1"
    },
    "repository": {
      "type": "git",
      "url": "https://github.com"
    },
    "keywords": [],
    "author": "",
    "license": "ISC"
  }

在package.json中必须包含name和version字段 

  • name就是你的包的名字,必须是一个小写的单词。

  • version字段的格式必须为x.x.x,并遵循语义版本控制准则。

{
  "name": "my-awesome-package",
  "version": "1.0.0"
}

author:你可在author中写下你的信息,请使用以下格式(电子邮件和网站都是可选的)

Your Name <[email protected]> (http://example.com)

main:包的入口文件

description: 描述信息,用于描述你的包的主要作用或功能

1. 初始化 

我们可以通过npm init 命令来创建package.json。过程中会让你输入以下信息。

当然你也可以使用 npm init --yes 或 npm init -y 进行快速创建

这个过程不需要再去填每个字段,会直接创建一个默认模板。可以注意到我创建的模板中author字段已经包含了我的信息,这是因为之前我对模板的默认配置进行了修改。同样你也可以对其他字段进行默认配置。

> npm set init.author.email "[email protected]"
> npm set init.author.name "dzy"
> npm set init.license "MIT"

2. 正式开始

在上面的配置中提到过 "main": "index.js" ,这是包的入口文件,所以这里我们需要新建一个index.js文件。在index.js中导出所要提供的包的功能方法。这里我就写两个排序函数作为例子。

exports.insertSort = function(arr){
    //插入排序
    let len = arr.length
    let temp
    for (let i = 1; i < len; i++) {
        temp = arr[i]
        let j = i - 1
        while(arr[j] > temp && j >= 0){
            arr[ j + 1] = arr[j]
            j--
        }
        arr[j + 1] = temp   
    }
    return arr
}
​
exports.selectionSort = function(arr){
    //选择排序
    let len = arr.length
    let minIndex,temp 
    for (let i = 0; i < len - 1; i++) {
        minIndex = i
        for (let j = i + 1; j < len; j++) {
            if(arr[j] < arr[minIndex])
                minIndex = j
        }
        temp = arr[i]
        arr[i] = arr[minIndex]
        arr[minIndex] = temp
    }
    return arr
}

为了方便他人使用的你包,你可以新建一个readme.md文件,用来对包如何使用进行说明,其中使用的是MarkDown语法。

3. 上传

要想上传自己的包,首先要有自己的npm账户,可以在 https://www.npmjs.com/ 中去注册。

有了账户后在自己的包项目中进行登录

npm login

现在就可以上传我们的包啦

npm publish

可以看到报错了,这里我就犯了一个容易出现的错误,上面说过包名必须是小写的。这里改一下包名重新上传。

上传成功,然后就可以在自己的账户中看到自己上传的包啦

如果想撤销我们上传的包可以用下面这个命令

npm unpublish --force

4. 安装使用 

新建一个项目,安装自己上传的包

npm install dzypackage --save

可以看到安装成功,目前是1.0.0版本

引入该包,使用测试

var dzypg = require('dzypackage')let arr = [34, 86, 25, 49, 53, 25, 35, 98, 5]console.log('插入排序结果:' + dzypg.insertSort(arr));console.log('选择排序结果:' + dzypg.selectionSort(arr));

到这里我们的包从开发到上传到使用已经完美的通过

5. 版本的更新迭代 

每次更新后我们的包,必须要修改版本号,否则是不能上传的

更改版本号有两个方法

1. 手动修改package.json中的version字段

2. 使用命令行,每次使用下面的命令对应的版本号就会加1,他们分别对应版本号的第1(主版本号).2(次版本号).3(修订号) 位

npm version major   npm version minor   npm version patch   

可以看到我使用了 npm version patch  版本号变为了v1.0.1。上传后线上的包也随之更新。

在项目中重新安装,此时的包的版本也变为了最新版本。

博主网站: www.dzyong.top

微信公众号: 《前端筱园》

发布了81 篇原创文章 · 获赞 104 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/DengZY926/article/details/105182936