npm 如何测试自己本地的包(npm link, npm install ./package)

简介: 最近在写学习 rollup 如何配置 打包生产环境。rollup定位是用来打包代码库的,Vue, React 等著名的前端框也是基于 rollup 来打包的。但是在发包之前,是需要对包进行安装测试的。(这里的测试分单元测试和安装测试)

最近在写学习 rollup 如何配置 打包生产环境。rollup定位是用来打包代码库的,Vue, React 等著名的前端框也是基于 rollup 来打包的。但是在发包之前,是需要对包进行安装测试的。(这里的测试分单元测试和安装测试)


目录结构


c0baeb6c8d084d26877a1d5e34d557e8.png


外部测试package.json


de1d3f4203ae4b04ae5ef1f165325002.png


由于外部的包安装的比较少,所以node_modules 里面的内容肯定是不多的。如下:


ec48f1ff53f541e1befaebb85a70aa15.png


包的package.json


96aabe7cc28d4bc59f802796ee3f05f0.png


可以看到,里面包的依赖很多,比外面多很多。


包里面的内容


85f8b5ed1d61477bbca6feabfddea514.png


方式


经过本人的尝试,有两种方式,可以把你打好的包,通过 npm 的方式来 安装


方式一npm install ./pack-name


1c18856c2a634d1ca8a07c1091fd399f.png


启动服务,跑一下代码,结果如下:


50bdd0fbad8743ce80fb7ae5c65310ca.png


方式二 npm link


npm link 用来在本地项目和**本地npm模块(包)**之间建立连接,可以在本地进行模块测试。详情查看

具体使用方式:


进入包内,npm link


b81991ec61ce442589eaa4bb01b0593c.png


在node的安装目录中的node_global中建立软链接


f5675ff2e3df4a04bf86ee21e9b21d84.png


在外部使用命令


  • cd到模块目录,npm link,进行全局link
  • cd到项目目录,npm link 模块名(package.json中的name)


c36f815b44664374a54b9d0c15bac60e.png


启动服务,跑一下代码,结果如下:


2e2b2966eb0b4e25b17ca999af73493b.png


改变源代码


7a5271c459254b72b0f2d94726d26f3b.png


证明npm link就是 创建的软连接。


拓展npm


npm 安装包的方式,大多数的人应该影响最深的是, npm install 包名称, 对的,没错,其实npm install后面还可以接收其他类型的参数。


安装指令 意思,举例 pagackage.json
npm install (with no args, in package dir) 不需要使用任何参数,直接是包的目录,可以是你本地的包哦!eg:npm install ./mypackage "mypackage": "file:mypackage",
npm install [<@scope>/]<name> 使用一个仓库下的某个包, eg:npm install @rollup/babel "@babel/core": "^7.14.6"
npm install [<@scope>/]<name> 使用一个仓库下的某个包, eg:npm install @rollup/babel "@babel/core": "^7.14.6"
npm install [<@scope>/]<name>@<tag> 安装最新版本的包, eg:npm install @babel/core@latest "@babel/core": "^7.14.6"
npm install [<@scope>/]<name>@<version> 安装指定版本的包, eg:npm install @rollup/babel@6.0.0 "@babel/core": "^6.0.0"
npm install [<@scope>/]<name>@<version range> 安装一个范围内的包, eg:npm install @rollup/babel@">=6.0.0 <7.14.6" "@babel/core": "^7.0.0"

npm install <alias>@npm:<name>

安装一个自定义别名的包, eg:npm install jquery2@npm:jquery@2npm install jquery3@npm:jquery@3

"jquery2": "npm:jquery@^2.2.4","jquery3": "npm:jquery@^3.6.0"


更多 请查看


npm install (with no args, in package dir)
npm install [<@scope>/]<name>
npm install [<@scope>/]<name>@<tag>
npm install [<@scope>/]<name>@<version>
npm install [<@scope>/]<name>@<version range>
npm install <alias>@npm:<name>
npm install <git-host>:<git-user>/<repo-name>
npm install <git repo url>
npm install <tarball file>
npm install <tarball url>
npm install <folder>


相关文章
|
13天前
|
网络安全 计算机视觉
【node】 npm install 报错:code 128
【node】 npm install 报错:code 128
33 1
|
1月前
|
前端开发 小程序 API
【微信小程序】-- 使用 npm 包 - API Promise化(四十二)
【微信小程序】-- 使用 npm 包 - API Promise化(四十二)
|
1月前
|
资源调度 小程序 前端开发
【微信小程序】-- 使用 npm 包 - Vant Weapp(四十一)
【微信小程序】-- 使用 npm 包 - Vant Weapp(四十一)
|
1月前
|
缓存
npm install 一直卡着不动如何解决
npm install 一直卡着不动如何解决
83 0
|
1月前
|
资源调度 小程序 前端开发
【微信小程序】-- npm包总结 --- 基础篇完结(四十七)
【微信小程序】-- npm包总结 --- 基础篇完结(四十七)
|
27天前
|
缓存
npm install 报 npm ERR! cb()never called!的错误
npm install 报 npm ERR! cb()never called!的错误
17 0
|
6天前
|
缓存 资源调度
npm install安装时一直idealTree:npm: sill idealTree buildDeps解决方案(亲测有效)
npm install安装时一直idealTree:npm: sill idealTree buildDeps解决方案(亲测有效)
20 2
message: 没有找到可以构建的 NPM 包,请确认需要参与构建的 npm 都在 `miniprogra
message: 没有找到可以构建的 NPM 包,请确认需要参与构建的 npm 都在 `miniprogra
|
1月前
|
缓存 网络虚拟化
解决 npm install 报错的常见问题
解决 npm install 报错的常见问题
207 0
|
1月前
|
JavaScript 前端开发 持续交付
npm install 执行后打印的 reify rxjs timing... Completed in 30389 ms 是什么意思
npm install 执行后打印的 reify rxjs timing... Completed in 30389 ms 是什么意思
35 0