自定义npm工具库
程序员文章站
2022-09-11 23:12:37
新建项目(任意磁盘的任意路径下都可以)初始化项目npm init -y{ "name": "tanrj-cli", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "licens...
新建项目(任意磁盘的任意路径下都可以)
初始化项目npm init -y
{
"name": "tanrj-cli",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
新建index.js文件作为入口并在文件的第一行添加 #!/usr/bin/env node
package.json文件添加属性bin,也可以设置作者和添加搜索关键词
{
"name": "tanrj-cli",
"version": "1.0.1",
"description": "",
"main": "index.js",
"bin": {
"tanrj-cli": "./index.js"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"trj",
"tanrj",
"tanrj-cli",
"fuierwer"
],
"author": "tanrj",
"license": "ISC"
}
打开终端定位到项目路径下,输入npm link
node会在全局下创建(C:\Users\Administrator\AppData\Roaming\node_global)
注意:执行完npm link之后,再次执行npm link会报错,这时我们可以执行npm link -f覆盖
定义一个方法用于文件拷贝(copy.js)
const fs = require('fs')
module.exports = function (src, dist, callback) {
fs.readFile(src, (err, data) => {
if (err) {
return callback(err)
}
fs.writeFile(dist, data, err => {
return callback(err)
})
callback(null)
})
}
在index.js中加载copy.js方法
#!/user/bin/env node
const copy = require('./copy')
const argvs = process.argv().slice(2)
copy(argvs[0], argvs[1], err => {
if (err) {
console.log('复制文件失败了')
} else {
console.log('复制文件成功')
}
})
console.log('copy()复制被执行了')
测试
将项目发布到npm
- 首先验证一下package.json中的name是否被占用
- 去npm.js.com或者通过npm adduser注册一个账户
npm login
查询镜像源
npm get registry
设置回默认的官方镜像(值为http://registry.npmjs.org/的省略)
npm config set registry https://registry.npmjs.org/
发布 npm publish
强制删除 npm unpublish --force
本文地址:https://blog.csdn.net/weixin_45585996/article/details/108217252
推荐阅读
-
几何画板怎么使用自定义工具绘制多边形?
-
VS2010 自定义用户控件未出现在工具箱的解决方案
-
使用asp.net mvc,boostrap及knockout.js开发微信自定义菜单编辑工具(推荐)
-
sqlserver连接工具有哪些(连接sqlserver数据库步骤)
-
mac数据库工具推荐(macbook型号对照表)
-
rabbitmq可视化工具数据分析(sqlite数据库可视化工具)
-
thinkphp5 migrate数据库迁移工具
-
Python使用Flask实现RESTful API,使用Postman工具、requests库测试接口
-
SolidWorks工具栏怎么自定义添加工具?
-
ug怎么自定义工具栏? ug新建工具栏的教程