共计 1147 个字符,预计需要花费 3 分钟才能阅读完成。
因为自身对脚手架有些许趣味, 所以我就钻研了, 而后还在编写 lerna 相干的文章, 喜爱的话就点个赞吧
node 脚手架原理
以 vue-cli 为例子
vue --help
零碎是怎么辨认进去 vue 这个变量
通过 which vue
命令能够找到
which vue
/c/Users/Administrator/AppData/Roaming/npm/vue
进入 npm 目录咱们能够看到 咱们通过 npm i -g [pageages]
装置的都在该目录下
关上 vue.cmd 文件(还有一个文件为 vue)
@IF EXIST "%~dp0\node.exe" ("%~dp0\node.exe" "%~dp0\node_modules\@vue\cli\bin\vue.js" %*) ELSE (
@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
node "%~dp0\node_modules\@vue\cli\bin\vue.js" %*
)
尽管不是很分明, 然而咱们大略能猜出来 \node_modules\@vue\cli\bin\vue.js
就是咱们运行的命令解析文件
进入 \node_modules\@vue\cli\bin
目录中
node ./vue.js --help
咱们会发现跟 vue --help
一样能够正当推断, 零碎通过 vue.cmd 执行了下面的命令
关键在于为什么零碎不通过增加 node 前缀就能够间接寻找到 vue;
关上 vue.js 文件
#!/usr/bin/env node
....
#!/usr/bin/env node
就是要害, 该行能够帮忙咱们间接寻找到零碎变量 node, 从而突然前缀
npm 发包(脚手架包)
通过 npm 官网注册账号,
运行 npm login
命令登录后, 咱们能够将新建文件夹, 进入文件夹
npm init
通过咱们能够公布库的状况下指定 package.json 中 main 字段即可
然而咱们想要公布能够像 vue-cli
通过 vue 命令解析的包, 就想要增加
增加 package.json 的 bin 字段来指定咱们要运行的文件
# package.json 文件
...
"bin": {"vue-test": "bin/index.js"},
...
比方咱们想要通过 vue-test
打印hello world!!
$ vue-test
hello world!!
bin 字段指定后
# bin/index.js 文件
#!/usr/bin/env node
console.log("hello world!!")
当初咱们就想要测试该命令是否无效
-
本地测试
link 能够测试本地包
npm link <path>
npm link $ vue-test
该命令会在本地为你创立全局指令
-
近程创立
npm login # 登录你的账号 npm publish # 公布 npm i -g <package-name> $ vue-test
正文完
发表至: javascript
2021-11-04