自定义npm工具库

新建项目(任意磁盘的任意路径下都可以)

初始化项目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 linknode会在全局下创建(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
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值