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文件出发,从上到下加载依赖,然后执行脚本


目录
相关文章
|
8天前
|
存储 缓存 资源调度
ES Module使用-原理-包管理工具npm(二)
ES Module使用-原理-包管理工具npm
73 0
|
8天前
|
JSON 资源调度 JavaScript
ES Module使用-原理-包管理工具npm(一)
ES Module使用-原理-包管理工具npm
81 0
ES Module使用-原理-包管理工具npm(一)
|
8天前
|
JSON JavaScript Unix
Nodejs 第五章(Npm run 原理)
Nodejs 第五章(Npm run 原理)
39 0
|
8天前
|
缓存 JavaScript 算法
Nodejs 第四章(Npm install 原理)
Nodejs 第四章(Npm install 原理)
41 0
|
JavaScript
nodejs项目npm start背后的工作原理
nodejs项目npm start背后的工作原理
nodejs项目npm start背后的工作原理
|
JavaScript
nodejs项目npm start背后的工作原理
nodejs项目npm start背后的工作原理
142 0
nodejs项目npm start背后的工作原理
|
8天前
|
网络安全 计算机视觉
【node】 npm install 报错:code 128
【node】 npm install 报错:code 128
43 1
|
8天前
|
JavaScript Linux 数据安全/隐私保护
node内网安装npm私服以及依赖包上传发布verdaccio
node内网安装npm私服以及依赖包上传发布verdaccio
126 1
|
8天前
|
JavaScript 内存技术
node与npm版本对应关系以及使用nvm管理node版本
node与npm版本对应关系以及使用nvm管理node版本
601 0
|
8天前
|
JavaScript
npm install没问题,但npm run dev的时候报Node Sass version 6.0.1 is incompatible with ^4.0.0 ^5.0.0
npm install没问题,但npm run dev的时候报Node Sass version 6.0.1 is incompatible with ^4.0.0 ^5.0.0
13 0

推荐镜像

更多