欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

npm 发布包以及安装测试流程

程序员文章站 2022-05-31 22:11:29
...

npm 发布包以及安装测试流程

什么是 NPM?

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

  1. 允许用户从 NPM 服务器下载别人编写的第三方包到本地使用。例如 iview、vue-router、gojs 等

  2. 允许用户从 NPM 服务器下载并安装别人编写的命令行程序到本地使用。例如 echo、ps、time 等

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

发布前的准备

注册一个 npm 账号

前往 https://www.npmjs.com/ npm 官网注册账号

进入 bash/cmd 环境登录 npm 账号

// bash/cmd 环境下
npm login
Username:
Password:
Email:

按顺序将信息依次输入即可

当出现以下错误时

npm 发布包以及安装测试流程

是因为当前的 npm/cnpm 的源指向的是淘宝镜像,需要将 npm 源切换到 https://registry.npmjs.org 再重新登录 npm 账号即可

 


此时安利一个 npm 管理工具

nrm

安装

npm install nrm -g

常见命令

列出所有可用的 npm 源

nrm ls

默认会内置以下源

npm ---------------- https://registry.npmjs.org/
yarn --------------- https://registry.yarnpkg.com/
cnpm --------------- http://r.cnpmjs.org/
taobao ------------- https://registry.npm.taobao.org/

切换使用的源

nrm use npm
或者
nrm use cnpm
...

添加一个源:nrm add <registry> <url> <home>

  • <registry> :源名

  • <url> :源的路径

  • <home> :源的主页(可不写)

nrm add company http://npm.company.com

删除一个源:nrm del <registry>

  • <registry> 为源的名称

nrm del company

测试源的响应速度

nrm test npm
或
nrm test cnpm
...

访问源的主页

nrm home taobao
或
nrm home cnpm
...

注:如果要查看自己添加的源的主页,在添加源的时候就要把主页带上

nrm add company http://npm.company.com/ http://npm.company.com/

安装包使用特定源

  • 全部使用特定源安装

    npm install --registry=https://registry.npm.taobao.org

     

  • 安装一个包使用特定源

    npm i iview --registry=https://registry.npm.taobao.org

     


nrm 安装好之后将源切换到 npm

nrm use npm

登录 npm 账号

npm login
Username:
Password:
Email:

创建一个简单的包

mkdir xxx-npm-demo
cd xxx-npm-demo
npm init

一路回车或根据包的内容来填写相关信息

新建 index.js 并写入内容

vi index.js
exports.sayHello = function () {
  return 'Hello world!'
}
:wq

index.js 抛出一个 sayHello 函数

上传包

npm publish --access=public

若报以下错误则是因为文件夹名称重复,重新起名即可

npm 发布包以及安装测试流程

出现以下截图情况即为成功上传包至 npm 管理器

 

npm 发布包以及安装测试流程

 

下载安装

npm install xxx-npm-demo --save-dev

在文件中可以通过 import 将包引入

import xxxNpmDemo from 'xxx-npm-demo'
xxxNpmDemo .sayHello()  // -> 'Hello World!'

关于共有包和私有包的权限相关可以参考如下链接

https://juejin.im/post/5c7c920de51d4560896aea5d

版本号控制可以参考如下链接

https://semver.org/lang/zh-CN/