前言
在前端开发中,搭建好了 Node 环境和 NPM 环境,可使用 npm 命令下载各种模块包,当模块包下载之后就可以在控制台使用模块自定义命令。比如 webpack -v 就可以查看 webpack 版本。直接执行 webpack 可进行打包。但是这些自定义命令是如何实现的昵?请看以下操作步骤。
一、 创建模块
1)新建文件夹(模块包名称),"module-test";
2)执行 npm init 命令,出现如下图所示,一直回车;生成 package.json 文件;
3)在根目录下新建 src 文件,在 src 文件下新建 index.js 文件;该 js 文件中写入想要执行的程序;需要强调的是要在首行加上
#!/usr/bin/env node 与之类似的还有 #!/usr/bin/node(即去掉 env)
#!/usr/bin/node 执行这个脚本的时候调用的是usr/bin 下的 node 解释器,这种方式固定了 node 的安装路径。
#!/usr/bin/env node 是现在 env 环境变量设置里查找 node 安装路径,再调用对应路径下的解释器完成操作。
4)在 package.json 中配置 bin;其中 module-test 为命令,可随意取,"./src/index.js" 为要执行的 js 路径。
{
"name": "module-test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"bin":{
"module-test":"./src/index.js"
}
}
二、测试命令
1)执行 npm link;
2)执行 module-test;
3)控制台输出 111,成功。
三、发布模块
1)执行 npm login,输入账号,密码,邮箱;
(发布包模块之前需要创建 npm 账号,可参考文章 https://blog.csdn.net/weixin_44135121/article/details/87622158)
2)登陆成功之后,执行 npm publish ;
(有可能会失败,大部分是因为重名的缘故,尝试在 package.json配置中修改 name)
3)发布成功之后,其他人就可以通过 npm i module-test 下载模块,也可使用 module-test 命令执行程序;
4)如果只是测试,可以在24小时内执行 npm unpublish 模块包名称@版本号 删除包,超过24小时就要联系 npm 维护者。