npm全局包运行过程

107 阅读1分钟

1: 通过npm config get cache可以获取到全局包的安装路径,一般为:“c:\user\xxx\Application Data\npm\node_modules\“

2: 进入任意一个全局包里面,以react-native-cli全局包为例,目录结构如下:

image

3: 打开该目录下的package.json,在script里面可以看到该全局包的运行命令:

package.json bin

该配置主要作用: a:在执行npm install react-native-cli -g执行全局包安装时,会根据第3点中bin中的配置生成快捷运行命令脚本文件,无后缀的为非windows系统执行的,有后缀的为windwos系统执行的,生成位置在:“c:\user\xxx\Application Data\npm“,脚本执行命令为react-native b:指定执行命令时运行的文件为index.js

image

4: 在命令行中执行react-native命令时,从脚本文件里代码可以看到是由nodejs加载执行到该脚本的,最终执行到的是“c:\user\xxx\Application Data\npm\node_modules\react-native-cli\index.js“ 文件

`@ECHO` `off`

`SETLOCAL`

`CALL :find_dp0`

`IF EXIST ``"%dp0%\node.exe"` `(`

`SET ``"_prog=%dp0%\node.exe"`

`) ELSE (`

`SET ``"_prog=node"`

`SET PATHEXT=%PATHEXT:;.JS;=;%`

`)`

`"%_prog%"`  `"%dp0%\node_modules\react-native-cli\index.js"` `%*`

`ENDLOCAL`

`EXIT /b %errorlevel%`

`:find_dp0`

`SET dp0=%~dp0`

`EXIT /b`

image