当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 自定义npm工具库

自定义npm工具库

2020年08月01日  | 移动技术网IT编程  | 我要评论
新建项目(任意磁盘的任意路径下都可以)初始化项目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 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

本文地址:https://blog.csdn.net/weixin_45585996/article/details/108217252

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网