自定义npm工具库
程序员文章站
2022-04-21 10:34:26
新建项目(任意磁盘的任意路径下都可以)初始化项目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
推荐阅读
-
ug怎么自定义工具栏? ug新建工具栏的教程
-
php封装的pdo数据库操作工具类与用法示例
-
Sqlite3 数据库工具修改游戏数据库文件图文教程
-
Android自定义网络连接工具类HttpUtil
-
Vue cli3 库模式搭建组件库并发布到 npm的流程
-
Excel借助快速访问工具栏自定义快捷键如合并单元格ALT+4
-
删除Word2010库中的自定义页眉
-
在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实现免安装Oracle客户端,兼容32位64位Oracle驱动
-
[WPF自定义控件库] 模仿UWP的ProgressRing
-
Win10如何在任务栏上自定义工具栏?Win10在任务栏上自定义文件夹的方法