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>


相关文章
|
2月前
|
JavaScript 前端开发 Java
npm学习一:npm 包管理工具 学习、使用。
这篇文章介绍了npm的基础知识和常用命令,包括安装包、查看包信息、管理依赖等操作,并提供了如何删除npm安装的镜像以及如何彻底删除node_modules文件夹的具体步骤。
98 2
|
2月前
|
JavaScript 前端开发 Java
npm学习一:npm 包管理工具 学习、使用。
这篇文章是关于npm包管理工具的学习、使用指南,包括npm概述、基础命令和如何安装webpack。
65 3
npm学习一:npm 包管理工具 学习、使用。
|
2月前
|
自然语言处理 机器人 Python
ChatGPT使用学习:ChatPaper安装到测试详细教程(一文包会)
ChatPaper是一个基于文本生成技术的智能研究论文工具,能够根据用户输入进行智能回复和互动。它支持快速下载、阅读论文,并通过分析论文的关键信息帮助用户判断是否需要深入了解。用户可以通过命令行或网页界面操作,进行论文搜索、下载、总结等。
51 1
ChatGPT使用学习:ChatPaper安装到测试详细教程(一文包会)
|
2月前
|
缓存 JavaScript 前端开发
拿下奇怪的前端报错(三):npm install卡住了一个钟- 从原理搞定安装的全链路问题
本文详细分析了 `npm install` 过程中可能出现的卡顿问题及解决方法,包括网络问题、Node.js 版本不兼容、缓存问题、权限问题、包冲突、过时的 npm 版本、系统资源不足和脚本问题等,并提供了相应的解决策略。同时,还介绍了开启全部日志、使用替代工具和使用 Docker 提供 Node 环境等其他处理方法。
567 0
|
2月前
|
资源调度 前端开发 安全
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
93 0
9-14|npm install --global windows-build-tools 安装太慢了,能够指定国内源
9-14|npm install --global windows-build-tools 安装太慢了,能够指定国内源
|
3月前
|
缓存 JavaScript 前端开发
8种方法解决vue创建项目报错:command failed: npm install --loglevel error
该文章提供了八种解决Vue项目创建时遇到的`command failed: npm install --loglevel error`错误的方法,包括清理缓存、更换npm源、重新安装Node.js等措施。
8种方法解决vue创建项目报错:command failed: npm install --loglevel error
|
3月前
|
数据安全/隐私保护
发布一个npm包
发布一个npm包
117 2
|
4月前
|
测试技术 开发工具 Python
在Jetson Nano上编译 pyrealsense2库包,并在Intel的tof相机上进行测试
在Jetson Nano上编译 pyrealsense2库包,并在Intel的tof相机上进行测试
167 0
|
4月前
|
JavaScript 前端开发 开发者
从零到一:教你如何发布自己的npm插件包
从零到一:教你如何发布自己的npm插件包