一、写作缘由
青训营的课程已近尾期,我们小队正在开发青训营毕业要求的一个指定项目,其中有一个需求是把项目封装为一个命令行工具。我以为javascript
代码可以像C++
、C
、Python
等语言代码一样可以编译成对应平台下的可执行文件,但是没有在网上查到。虽然没有找到编译成可执行文件的方法,但是找到了像脚本一样自动通过相关环境执行,因而记录下来。
二、环境安装
环境安装我不想再写了,可以看我nodejs中使用typescript开发配置 | 青训营的文章,只需要安装nodejs
和Visual Studio Code
就可以实践了。
三、npm install 行为浅析
使用npm install packageName
安装某个包时,在将包下载下来后,就会读取该包下的package.json中的dependencies属性,下载当前包的依赖包,这个是显而易见的,但与我们本篇文章没有关系,真正有关系的是package.json中的bin属性。
一旦我们使用npm install bin-test
下载了这个包,npm就会通过读取bin-test/package.json中的bin属性,然后在./node_modules/.bin下面创建一个hello脚本文件,然后链接到index.js文件,一旦在./node_modules/.bin目录下执行hello,就相当于执行了node ./index.js(绝对路径)。
bin属性中的命令文件在文件开始必须加上执行环境
#!/usr/node/env node
linux环境下