- 支持 typescript
- 完整的一套构建,开发,测试,打包压缩等步骤
- npm init
- 支持 typescript
- 在这里我使用了以前的配置
- /lib: 插件压缩后的源码
- /src: 插件开发demo
- /tests: 插件测试
- /index.js: 输出插件
- /readme.md: 插件说明文件 。。。
- 跟我们项目打包不同,所以我专门写了一个打包配置:webpack.dev.config.js
- 输出配置
// webpack.dev.config
···
output: {
path: path.resolve(__dirname, "lib"), //将js文件打包到lib的目录
filename: "[name].min.js",
library: 'numberWord', // 指定类库名,主要用于直接引用的方式(比如使用script 标签)
libraryExport: "default", // 对外暴露default属性,就可以直接调用default里的属性
globalObject: 'this', // 定义全局变量,兼容node和浏览器运行,避免出现"window is not defined"的情况
libraryTarget: 'umd' // 定义打包方式Universal Module Definition,同时支持在es6模块、CommonJS、AMD和全局变量使用
},
···
- 自定义指令配置,这样根据自定义打包配置可以只打包我们所需要的源码
// package.json
···
"build": "webpack -p --config webpack.dev.config.js",
···
- 有了开发完毕且压缩好的插件之后
- 我们可以在 npm 上进行注册,发布了
- npm adduser: 按照提示输入已经注册好的 userName password Email
- npm publish:将代码上传
- 当你更新插件,在 package.json 的 version 版本号进行改动,小更新就将最后一位加1,在执行 npm publish 就是更新插件了
- version:版本号,以后每次上传 npm 都需要更改
- name:插件名字
- description: 插件描述
- main:导出插件的出口文件地址,一般为 index.js
- repository:url 填上你插件 github 的地址
version: 1.2.3;1为主版号,2为次版号,3为修订号
- 主版号:当你做了不相容的 API 修改,
- 次版号:当你做了向下相容的功能性新增,
- 修订号:当你做了向下相容的问题修正。