node 与 npm 是一体的,只要安装了 node 的环境,那么你就可以使用 npm 命令,npm 是一个包管理工具;
自从可以使用 npm 后,npm 库中增加了各种包,我们可以从中找到各种已经实现的实用的包,而不必自己去开发实现了。
npm 库中的包分为工具包与功能包:
工具包:是可执行的命令,可以在终端运行,实现某些功能,主要是开发阶段被使用
例如,初始化一个项目,编译文件等等,我们通常使用的脚手架就是工具包的一种
功能包:主要是在项目业务中被引用,实现某个功能,是任何环境(开发或生产)都需要的
例如,加密,识别页面的加载设备类型等等
功能包则一般是业务需求而开发的 npm 包,一般是在项目中使用包所导出的功能,而工具包我们则一般是使用它的命令行,或者用于项目打包等作用
可以全局安装工具包,那么可以在任意位置的终端下执行该包的命令;安装完成后,可以在设置的全局目录下找到该工具包的命令脚本;
可以只在当前项目安装该工具包,那么该包的命令也只应用于当前项目;安装完成后,可以在当前项目 node_modules 目录下的.bin 文件夹中找到该工具包的命令脚本;
例如安装 typescript,
npm i typescript [-g]
如果是在非项目目录终端下执行该工具包的命令的时候,会直接到全局目录下查找该命令;
如果是在项目目录终端下执行该工具包命令的时候,会首先到 node_modules 目录下的.bin 文件夹中查找该命令,如果没找到会继续到全局目录下查找该命令;
如果命令都没被找到,终端会提示该命令不可识别
我们有时也可使用该方式查验工具包是否正确安装
例如,typescript 的命令是 tsc
如果可以在上述目录下找到 tsc 的可执行文件
此时如果在终端输入 tsc,会输出所有可执行的 tsc 命令
若执行以下命令脚本
tsc[filename.ts];
ts 文件将被编译成 js 文件
如果可以在上述目录下没有找到 tsc 的可执行文件
此时输入 tsc,会提示该命令不可识别
同时也说明该工具安装失败,我们通常使用该方式检查包是否安装成功
工具包的开发,一般是node的项目,最终通过命令行使用,具体的开发就不在这里讲解了
工具包开发完成之后可以将该包上传到 npm 库中供他人使用,工具包可以发布到官网 npm 库,也可以将工具包发布到私库