郑州专业网站建设公司,平面设计课程表,网站开发模块,手机网站特效文章目录 前言一、package.json配置项version#xff1a;1.0.0devDependenciesdependenciespeerDependenciesoptionalDependencies 二、npm命令1、npm config listxmzs使用2、npm installpackage-lock.json作用 3、npm run4、 查看全局安装的可执行文件 npm生命周期npxnpx简介… 文章目录 前言一、package.json配置项version1.0.0devDependenciesdependenciespeerDependenciesoptionalDependencies 二、npm命令1、npm config listxmzs使用2、npm installpackage-lock.json作用 3、npm run4、 查看全局安装的可执行文件 npm生命周期npxnpx简介npx查找命令的流程npx优点npx和npx的区别npx使用场景 npm 包的发布发布npm包的作用发布npm包的流程 npm 私服构建npm私服什么是npm私服为什么要搭建npm私服搭建npm私服 总结 前言
node.js 是一个基于Chrome V8引擎的JavaScript运行时环境用于构建高性能、可扩展的网络应用程序。node的出现使JavaScript也能编写服务端应用程序。 一、package.json
在使用npm初始化项目的时候。npm会创建package.json用来配置项目它在后续打包、依赖安装起到关键作用。如果想要快速获取项目信息就必须对package.json文件相关配置项有所了解。
配置项
version1.0.0
第一位: 主版本号, 当你做了不兼容的API修改重大改动 第二位: 次版本号, 当你做了向下兼容的功能性新增功能的新增 第三位: 修订号, 当你做了向下兼容的问题修正fix Bug 修复
devDependencies
开发环境依赖是指在开发阶段项目内为了开发使用的工具等在项目上线用户不用接触的一些工具在后面接 -D就会将该依赖放在devDependencies下,如: babel, webpack, eslint, jest, vite, rollup等
npm install --save-dev packagenpm install -D packagedependencies
生产环境依赖也就是线上需要依赖的在后面接 -S就会将依赖放在dependencies下,如: react, vue, lodash, jquery等
npm install --save packagenpm install -S packagepeerDependencies
peerDependencies是指插件的运行依赖(开发插件、npm包), 也就是说, 如果你的插件依赖于另一个插件, 那么你的插件就应该将这个插件列入peerDependencies, 并且指定一个版本范围, 以确保它的存在, 否则会报错一般来说项目里面用不到这个这个更适合插件开发和SDK开发使用。
npm install --save-peer packagenpm install -P packageoptionalDependencies
optionalDependencies是指插件的可选依赖, 也就是说, 如果你的插件依赖于另一个插件, 但是这个插件不是必须的, 那么你的插件就应该将这个插件列入optionalDependencies, 并且指定一个版本范围, 以确保它的存在, 否则会报错
npm install --save-optional packagenpm install -O package二、npm命令
npm的命令大全 以上使官网npm的命令
其中比较重要的命令有以下几个
1、npm config list
这各命令主要用于查看npm的一些信息
cache 依赖缓存在本地的位置prefix 全局执行命令registry 安装依赖源地址 后面使npm的一些信息。
; user config from C:\Users\Administrator\.npmrc//localhost:4873/:_authToken (protected)
//registry.npmjs.org/:_authToken (protected)
cache E:\\nodejs\\node_cache
prefix E:\\nodejs\\node_global
registry https://registry.npmmirror.com/; node bin location E:\nodejs\node.exe
; node version v20.5.0
; npm local prefix C:\Users\Administrator
; npm version 9.8.0
; cwd C:\Users\Administrator
; HOME C:\Users\Administrator
; Run npm config ls -l to show all defaults.这里可以更换下载源比如淘宝源、清华源等
npm config set registry 源地址也可以使用插件来更换源如xmzs这是一个用来管理Node版本和源等操作的命令行工具支持中文对国人很友好。具体使用如下
xmzs使用
安装
npm install -g xmzs查看版本
mmp -V查看当前源
mmp current切换源
mmp use 添加源
mmp add2、npm install
项目的依赖都会放在node_modules下采用扁平化理想化的方式安装,会将重复的依赖提升到顶层其排序规则为 . 系列 系列 字母顺序 在寻找依赖时使用广度优先遍历优先处理更目录下的依赖然后逐层处理每个包的依赖处理依赖的时候会检查其版本是否符合依赖树中其他依赖的版本要求不满足将尝试下载合适版本。 其安装过程如图 寻找项目级.npmrc 在项目根目录下找.npmrc文件 寻找用户级.npmrc 在本地用户目录下找.npmrc文件 全局的 .npmrc 在全局C盘AppData文件中找.npmrc文件 npm内置.npmrc 在安装的node中找.npmrc文件 检查项目是否存在package-lock.json文件 有比较 package-lock.json 和package.json 版本是否一致 一致检查是否有缓存 有则解压到node_modules并更新没有则要下载资源。 不一致根据package.json 下载并更新 package-lock.json没有获取包信息构建依赖树并进行扁平化随后检查缓存然后检查是否有缓存 有则解压到node_modules并更新没有则要下载资源。
package-lock.json作用
package-lock.json是npm5新增的文件, 用于锁定依赖包的版本号, 以便于其他开发者在npm install时生成相同的依赖关系树其次它完成了缓存的相关利用 integrity version 名称 生成唯一的key在缓存文件node_cache中 index-v5 找索引是否存在相同的如果找到就会将 content-v2 中对应的二进制文件解压放到node_modules上文已经说明怎么查看缓存文件位置如果没有就是目前没有建立缓存。 3、npm run
要执行这个命令就必须在scripts中配置相关执行命令 所有的可执行文件都放在 node_modules 下 .bin目录下
.sh文件 是给unix、Linux、Macos 使用.cmd 文件 是windows cmd 使用.ps1文件 是windows power shell 使用 过程 当前项目 node_modules/.bin 全局 node_modules 在prefix下 环境变量 命令识别 如果命令是以npm开头的, 则执行npm内部命令如果命令是以node开头的, 则执行node命令如果命令是以./或…/开头的, 则执行对应的脚本文件如果命令是以其他字符串开头的, 则先在node_modules/.bin目录下查找对应的命令,
4、 查看全局安装的可执行文件
npm ls -gnpm生命周期
和命令一样在scripts中配置
preinstall: 在install之前执行install: 安装依赖包postinstall: 在install之后执行preuninstall: 在uninstall之前执行uninstall: 卸载依赖包postuninstall: 在uninstall之后执行prepack: 在npm pack之前执行pack: 打包postpack: 在npm pack之后执行prepublish: 在npm publish之前执行publish: 发布postpublish: 在npm publish之后执行pregit: 在git commit之前执行git: git commitpostgit: 在git commit之后执行prepush: 在git push之前执行push: git pushpostpush: 在git push之后执行prestop: 在npm stop之前执行stop: 停止poststop: 在npm stop之后执行prestart: 在npm start之前执行start: 启动poststart: 在npm start之后执行prerestart: 在npm restart之前执行restart: 重启postrestart: 在npm restart之后执行run predev: 在npm run dev之前执行run dev: 运行run postdev: 在npm run dev之后执行 npx
npx简介
npx是npm5.2.0版本新增的命令, 用于执行依赖包中的命令, 例如: npx webpack, npx jest等
npx查找命令的流程
查找本地是否存在该命令查找本地是否存在该命令的可执行文件查找全局是否存在该命令查找全局是否存在该命令的可执行文件查找项目依赖包中是否存在该命令查找项目依赖包中是否存在该命令的可执行文件查找远程npm仓库是否存在该命令查找远程npm仓库是否存在该命令的可执行文件报错
npx优点
不需要全局安装依赖包npx会自动下载依赖包不需要手动更新依赖包npx会自动更新依赖包会在远程npm的package仓库中查找最新版本的依赖包不需要手动删除依赖包npx会自动删除依赖包执行任意npm包中的命令npx可以执行任意npm包中的命令例如: npx create-react-app my-app执行Github Gist中的命令npx可以执行Github Gist中的命令例如: npx https://gist.github.com/zkat/4bc19503fe9e9309e2bfaa2c58074d32
npx和npx的区别
npx 侧重执行命令
npm 侧重管理依赖,安装或者卸载模块
npx使用场景
不想在全局安装某个依赖包, 但是又想使用该依赖包中的命令且版本号获取最新的。如npx create-react-app my-app想使用项目依赖包中的命令但是全局不存在就可以使用npx直接执行。如npx vite npm 包的发布
发布npm包的作用
跨团队或团队共享代码还可以进行版本控制开源造轮子增加自身价值体现
发布npm包的流程
查看当前源 这里需要切回官方源
npm config get registry注册npm账号
npm adduser登录npm账号
npm login创建npm包 可以配置package.json中files属性指定需要发布的文件
{files: [index.js]
}npm init发布npm包 名称必须唯一 否则403发布前需要修改版本号
npm publish更新npm包
npm version patch
npm publish删除npm包
npm unpublishnpm 私服
构建npm私服
什么是npm私服
npm私服是一个npm仓库用于存放npm包类似于maven私服
为什么要搭建npm私服
有些包在国外下载速度很慢可以将这些包下载到私服上然后从私服上下载离线使用可以将私服部署在内网然后在内网使用提高包的安全性更好的管理包防止包被篡改防止在使用公共包时出现漏洞提高包的下载速度将包缓存在本地下次使用时直接从本地获取减少下载时间。
搭建npm私服
安装verdaccio Verdaccio是一个轻量级的私服可以使用它来搭建私服
npm install -g verdaccio启动verdaccio
verdaccio配置npm源 这一步是为了让npm使用私服而不是使用官方源之后就不用跟 --registry http://localhost:4873 了 这里也可以使用 xmzs 来添加并切换源
npm set registry http://localhost:4873创建私服账号
npm adduser --registry http://localhost:4873登录私服账号
npm login --registry http://localhost:4873发布包
npm publish --registry http://localhost:4873安装包
npm install --registry http://localhost:4873以下是我私服管理的两个包 总结
以上介绍了npm 的系列知识。