npm 加载原理(三)

简介: npm 加载原理

新建一个空项目(省落)


安装


前两节中,已经大致介绍了npm与如何发包


安装命令:


npm install 包名 (简写: npm i 包名


安装上一下小节的包:


npm i water-pkg


此时项目的目录为:


test-my-pkg
├── node_modules
│   └── water-pkg
│       ├── README.md
│       ├── index.js
│       └── package.json
├── package-lock.json
└── package.json


使用


let printer = require('water-pkg');
printer.printMsg();


运行npm install命令后的执行过程


●发出npm install命令

●npm向registry查询模块压缩包的下载地址

●下载压缩包并存放到本地npm缓存路径(~/.npm目录)

●解压到当前项目node_modules目录


其实模块在本地保存了两份:~/.npm目录下的压缩包和node_modules目录下的解压代码。但npm install时,只会检查node_modules目录,如果它里面没有相关模块,即使~/.npm内有模块压缩包,npm依然会从远程仓库下载新压缩包。


扩展: npm run的过程


●package.json文件里 script 配置对应命令 XXX

●npm run XXX 其实就是执行上面配置 命令创建一个脚本shell(会电脑终端中执行这个脚本)

●在脚本执行之前,会将环境变量添加在全局下,执行完毕后会删除对应的path

●以开发包 dev 举例子 ,执行config-dev.js

●配置文件里 从entry文件出发,从上到下加载依赖,然后执行脚本


目录
相关文章
|
Windows
ts-node : 无法加载文件 C:\Users\Dell\AppData\Roaming\npm\ts-node.ps1,因为在此系统上禁止运行脚本。有关详细信息
ts-node : 无法加载文件 C:\Users\Dell\AppData\Roaming\npm\ts-node.ps1,因为在此系统上禁止运行脚本。有关详细信息
268 0
|
资源调度
pnpm : 无法加载文件 C:\Users\86183\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本。
发现了问题,在上一个项目中我是使用的npm来进行安装依赖和运行打包的,在看到这里时才发现了问题,解决的方法就是 1.在系统中搜索框输入 Windos PowerShell,点击以管理员身份运行
|
2月前
|
缓存 JavaScript 前端开发
拿下奇怪的前端报错(三):npm install卡住了一个钟- 从原理搞定安装的全链路问题
本文详细分析了 `npm install` 过程中可能出现的卡顿问题及解决方法,包括网络问题、Node.js 版本不兼容、缓存问题、权限问题、包冲突、过时的 npm 版本、系统资源不足和脚本问题等,并提供了相应的解决策略。同时,还介绍了开启全部日志、使用替代工具和使用 Docker 提供 Node 环境等其他处理方法。
572 0
|
6月前
|
JavaScript
vue : 无法加载文件 D:\module\npm_module\npm_modules\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.c
vue : 无法加载文件 D:\module\npm_module\npm_modules\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.c
|
7月前
|
JSON 资源调度 JavaScript
ES Module使用-原理-包管理工具npm(一)
ES Module使用-原理-包管理工具npm
192 0
ES Module使用-原理-包管理工具npm(一)
|
7月前
|
存储 缓存 资源调度
ES Module使用-原理-包管理工具npm(二)
ES Module使用-原理-包管理工具npm
145 0
|
7月前
|
JSON JavaScript Unix
Nodejs 第五章(Npm run 原理)
Nodejs 第五章(Npm run 原理)
87 0
|
7月前
|
缓存 JavaScript 算法
Nodejs 第四章(Npm install 原理)
Nodejs 第四章(Npm install 原理)
82 0
|
7月前
|
资源调度
pnpm : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本。
pnpm : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本。
解决 cnpm : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。
解决 cnpm : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。
1028 0