从零系列--开发npm包(一)
一、目的
主要是纪录和回顾自己开发的一些步骤以及遇到的一些问题和解决方案
二、准备工作
1、IDE 选择 VS Code
2、安装node 环境 (https://nodejs.org/zh-cn/)
3、git仓库 gitlab (https://gitlab.com)
(1) 注册
(2)add ssh key(可以看一下 https://gitlab.com/help/ssh/README.md)
(3)新建project
(4)git clone 到本地
(5) 工程下执行
npm init
4、npm
(1)注册新用户 (https://www.npmjs.com)
(2)本地添加用户 工程下执行 (文档:https://docs.npmjs.com/misc/developers)
npm adduser
三、开发
1、在根目录下 新建 index.js 文件 用于功能入口文件
2、新建一个module目录用于存放模块文件
四、编译
1、安装bebel-cli 进行编译
npm i babel-cli -d babel index.js module/* module/**/* -d dist -s inline
2、安装 webpack 打包
npm i webpack-cli -d
3、编辑webpack.config.js (dev环境 足够简单 没必要加些多余的插件 且 vscode 已经加了eslint 语法检测 关于配置可以参考文档)
let path = require('path')
module.exports = {
entry:path.resolve(__dirname,'./index.js'),//入口文件
output:{
path:path.resolve(__dirname,'./dist'),//输出路径
filename:'index.js',//输出文件名
library: 'kdUploader',//库名
libraryTarget:'umd'//可以参考 导出库(exported library)的类型
},
mode:'development',//定义开发环境
module:{
rules:[
{ test:/\.js(x)?$/, exclude: /node_modules/, use:['babel-loader'] }//对js或jsx文件用babel-loader编译
] }
}
4、在package.json 文件中scripts 下加入build命令
"build": "webpack --config webpack.config.js -w"
5、执行命令
npm run build
五、调试
1、下载Debugger for Chrome 扩展 (由于我开发的npm包是用于前端的)
2、调试node包 在下图文件中添加
{
"type": "node",
"request": "launch",
"name": "启动程序",
"program": "${workspaceFolder}/dist/index.js"//功能入口文件
}
3、调试前端引入组件 在下图文件中添加
{
"name": "Launch index.html",
"type": "chrome",
"request": "launch",
"file": "${workspaceFolder}/test/index.html"//测试起始html文件路径
}

六、提交代码及发布
1、提交代码
git add -A
git commit -m 'message'
git push -u origin master
2、发布
npm version $VERSION --message "message"//$VERSION 为发布版本号
npm publish
从零系列--开发npm包(一)的更多相关文章
- 从零系列--开发npm包(二)
一.利用shell简化组合命令 set -e CVERSION=$(git tag | ) echo "current version:$CVERSION" echo " ...
- node.js开发 npm包管理工具 npm 和 cnpm区别
npm 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用. 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用 np ...
- 如何开发NPM包
创建包目录 D:\>mkdir mypackage && cd mypackage D:\mypackage>npm init --yes 进入mypackage目录,你会 ...
- node.js开发 npm包管理工具
npm介绍 说明:npm(node package manager)是nodejs的包管理器,用于node插件管理(包括安装.卸载.管理依赖等) 使用npm安装插件:命令提示符执行npm instal ...
- 记npm包开发全过程
概述 为什么开发npm包? 如何开发? 如何写单元测试? package.json 如何发布模块? 如何使用? 为什么开发npm模块? NPM的全称是Node Package Manager,是一个N ...
- 【vue系列之三】从一个vue-pdf-shower,说说vue组件和npm包
前言 从去年年初开始,自己便下决心要写一个vue系列的博客,但时至今日,才写系列的第三篇博客,想来甚是惭愧. 但是慢归慢,每一篇都要保证质量,以及要写出自己的心路历程,防止自己工作中填的坑再让读者走一 ...
- 在2018年如何优雅的开发一个typescript语言的npm包?
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由小明plus发表 很多时候,我们可能想要用 typescript 语言来创建一些模块,并提交到 npm 供别人使用, 那么在 2018 ...
- 如何开发一个npm包并发布
一.安装nodejs 不多说了,网上教程多得是 二.创建自己的npm包 目录结构 npm-test a.js b.js package.json 开发 为了简单便于理解,就开发一个简单地hello程序 ...
- npm包开发与发布
把通用的功能开发成npm包,便用使用和维护,更重要的是可以分享给广大的开发者,是不是很激动人心! 那么,步骤如下: 1.创建项目 创建项目目录,npm init ,根据需要输入配置信息(建完后也可以在 ...
随机推荐
- mybatis 反向生成步骤
Mybatis 反向生成. 反向生成的步骤: 反向生成的文件 打开文件夹显示 3.打开generator.xml文件 更改配置信息 路径一般情况下用英文 中文的路径有些会识别不了 或产生乱码 4 ...
- 【转】jquery cookie操作
Cookie是网站设计者放置在客户端的小文本文件.Cookie能为用户提供很多的使得,例如购物网站存储用户曾经浏览过的产品列表,或者门户网站记住用户喜欢选择浏览哪类新闻. 在用户允许的情况下,还可以存 ...
- Java之Https请求
import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import ...
- 或许因为缺少默认route配置而导致的的ping超慢,甚至timeout
内网有台dell r620 做测试用: 4个网口都插了 网线,通过小交换直接连在中心路由的第3个口上: 安装了kvm,有virbr0 :但还没装其它的虚拟机. ping 外网域名 ,IP地址 都超 ...
- 真实的物理机安装Centos7系统后网卡只有lo没有eno1的解决办法:实际上是物理机未安装网驱动卡
问题症状: 我真实的物理机安装Centos7系统后,在/etc/sysconfig/目录下查看,发现网卡只有lo没有eno1,出现该问题的实际原因是物理机未安装网驱动卡. 解决办法: 不多说了,让我们 ...
- Jquery简单的placeholder效果
Jquery简单的placeholder效果 由于IE6-IE9不支持HTML5中的placeholder,所以自己依赖于Jquery简单的写了一个,供参考! 先看看效果吧!如下JSFiddle地址 ...
- Codeforces round 1111
CF Div 2 537 比赛链接 感觉题目难度OK,五个题都能做,后俩题考察人的翻译水平... 另外,$Claris$太强了... A 直接按照题意模拟,不知道为啥有人会被× 代码: #includ ...
- 20155233 《网络对抗》 Exp8 Web基础
实验内容 Web前端HTML Web前端javascipt Web后端:MySQL基础:正常安装.启动MySQL,建库.创建用户.修改密码.建表 Web后端:编写PHP网页,连接数据库,进行用户认证 ...
- XAMPP、PHPstorm和PHPcharm和Windows环境下Python搭建+暴力破解
XAMPP的安装和使用 一.什么是XAMPP? XAMPP是最流行的PHP开发环境. XAMPP是完全免费且易于安装的Apache发行版,其中包含Apache.MariaDB.PHP和Perl. 类似 ...
- 2015531 网络攻防 Exp1 PC平台逆向破解(5)M
2015531 网络攻防 Exp1 PC平台逆向破解(5)M 实践目标 本次实践的对象是linux的可执行文件 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串 ...