npm开发简述

本文介绍了npm插件开发的基本流程,以一个发送文件的插件为例,强调了`bin`属性的重要性,它决定了npm如何生成运行指令。还提到了bin入口文件需在顶部指定,项目文件路径的管理,以及命令行参数的获取。适合npm新手参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

npm开发简述

最近公司相关业务有需要写npm插件公用,正好之前没接触过,可以尝试着做。

在开发过程中我遇到了不少问题(主要是英文差,看不了文档…囧),然而在查baidu的时候发现,基本找到的都是介绍如何发布,貌似没几个详细的开发过程的…只能找认识的前端大神求救才知道真相,心塞…

以下是npm插件开发的基本流程,我将以一个发送文件的插件作为例子说明,希望对其他人有所帮助。


先列几个要注意的点~
这里写图片描述

1. bin
做npm插件其实和做项目是一样的。先新建项目目录,npm init 生成相关的 poject.json 信息,如插件名,入口文件,git地址等等,其中要注意的是bin属性。

这个属性在插件被安装的时候会被npm读取,找到相应的运行文件并生成指令,如 webpack 的运行命令,没写是找不到插件的。一般插件会把这个运行文件放在bin目录里,如下:
0
在你的插件被安装之后,npm会生成相关的文件(如图)
1
使用者可以运行如上述例子的 [ poject-deploy ] 即可运行插件。


2. bin的入口文件一定要在顶部加上

#!/usr/bin/env node

3
否则会报错无法运行。


3. 项目文件路径
网上文档一大堆,但是初学者很容易犯晕,其实只要搞清楚以下个就好了

// 脚本当前目录的父目录
../dir
../file

// 这几个都是脚本当前目录的
./dir
./file
path.resolve(__dirname, 'dir')
path.resolve(__dirname, 'file')

// 运行命令的目录
path.resolve('.', 'dir')
path.resolve('.', 'file')

简单来说,要引用父目录的文件
4

引入当前目录的文件
5

引用命令运行目录的脚本,哪怕rf.js在lib下面再深几层目录,只要命令行运行在根目录,一样可以获取到index.js
6


4. 命令行参数获取
像webpack等插件,在运行命令的时候,通常我们可以在命令后面加上参数表示不同运行逻辑,这个参数的获取需要用node全局变量,具体可以看 文档介绍,这里就不加阐述了。

// print process.argv
process.argv.forEach(function(val, index, array) {
  console.log(index + ': ' + val)
})

$ node process.js one two=three four
0: node
1: /Users/node/process.js
2: one
3: two=three
4: four



说了这么多,有没有get到一点点?
7

如果有吸收到,那就可以嘿嘿嘿了。
8

没有也没关系,反正字多我也不想看,直接去下载试试就知道啦,也可以仿照写一个哦
poject-deploy:
npm地址
github

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值