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>


相关文章
|
7月前
|
Linux 内存技术
使用npm install -g pnpm的时候报错
使用npm install -g pnpm的时候报错
1582 139
|
JavaScript 前端开发 Java
npm学习一:npm 包管理工具 学习、使用。
这篇文章介绍了npm的基础知识和常用命令,包括安装包、查看包信息、管理依赖等操作,并提供了如何删除npm安装的镜像以及如何彻底删除node_modules文件夹的具体步骤。
383 2
|
存储 JavaScript 前端开发
在NodeJS中使用npm包进行JS代码的混淆加密
总的来说,使用“javascript-obfuscator”包可以帮助我们在Node.js中轻松地混淆JavaScript代码。通过合理的配置,我们可以使混淆后的代码更难以理解,从而提高代码的保密性。
1307 9
|
JavaScript
node环境之Error: Cannot find module ‘chalk’ 报错无法解决的问题—-网上说让你npm install chalk 基本是没有用的-优雅草央千澈解决方案
node环境之Error: Cannot find module ‘chalk’ 报错无法解决的问题—-网上说让你npm install chalk 基本是没有用的-优雅草央千澈解决方案
1232 13
node环境之Error: Cannot find module ‘chalk’ 报错无法解决的问题—-网上说让你npm install chalk 基本是没有用的-优雅草央千澈解决方案
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
524 3
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
|
存储 资源调度 JavaScript
npm、cnpm 和 pnpm 是三种常用的 Node.js 包管理工具
npm、cnpm 和 pnpm 是三种常用的 Node.js 包管理工具。npm 是官方默认的包管理器,提供依赖管理、安装和更新等功能;cnpm 是由阿里巴巴开发的 npm 镜像,专为中国大陆用户优化,解决下载速度慢的问题;pnpm 通过硬链接技术提高安装速度并节省磁盘空间,特别适合磁盘资源紧张的环境。三者命令类似,但各有特色,开发者可根据需求选择合适的工具。
2339 5
|
JavaScript 前端开发 Java
npm学习一:npm 包管理工具 学习、使用。
这篇文章是关于npm包管理工具的学习、使用指南,包括npm概述、基础命令和如何安装webpack。
620 3
npm学习一:npm 包管理工具 学习、使用。
|
自然语言处理 机器人 Python
ChatGPT使用学习:ChatPaper安装到测试详细教程(一文包会)
ChatPaper是一个基于文本生成技术的智能研究论文工具,能够根据用户输入进行智能回复和互动。它支持快速下载、阅读论文,并通过分析论文的关键信息帮助用户判断是否需要深入了解。用户可以通过命令行或网页界面操作,进行论文搜索、下载、总结等。
549 1
ChatGPT使用学习:ChatPaper安装到测试详细教程(一文包会)
|
缓存 JavaScript 前端开发
拿下奇怪的前端报错(三):npm install卡住了一个钟- 从原理搞定安装的全链路问题
本文详细分析了 `npm install` 过程中可能出现的卡顿问题及解决方法,包括网络问题、Node.js 版本不兼容、缓存问题、权限问题、包冲突、过时的 npm 版本、系统资源不足和脚本问题等,并提供了相应的解决策略。同时,还介绍了开启全部日志、使用替代工具和使用 Docker 提供 Node 环境等其他处理方法。
15524 2
|
资源调度 前端开发 安全
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
1609 0

推荐镜像

更多
  • NPM