/library

Primary LanguageHTMLMIT LicenseMIT

如何开发一个属于自己的前端类库

  • 基于webpack进行资源构建
  • 使用es6语法进行开发
  • 将包输出为umd规范的文件
  • 使用mocha和chai进行测试
  • 使用eslint来进行代码检查
  • 基于npm scripts来集成开发命令
  • 代码push到github
  • 将包发布到npm

基于开发环境

  • 全局环境 node & npm
  • 命令行: terminal & shell
  • 版本管理: git
  • 编辑器: webstorm2016
  • 浏览器:chrome
  • 注册npm账号
  • 注册github账号

创建项目的基本结构

src  开发源代码
lib  编译后的资源
test 测试用例
.gitignore
LICENSE
README.md
package.json
webpack.config.js
.babelrc
.selint.js

##结合webpack跑通es6语法编译过程

  • webpack.config.js
npm install webpack webpack-dev-server --save-dev
  • babel及其相关preset、plugin、loader
npm install babel-loader babel-core babel-preset-es2015 babel-plugin-add-module-exports --save-dev

babel-preset-es2015-loose babel-preset-stage-0 babel-preset-es2016 ##umd

npm install babel-plugin-transform-es2015-modules-umd --save

##webpack几个小配置

  • resolve extension 拓展名,方便 root 添加默认搜索路径,但得是绝对路径,可以是数组和字符串
  • devtool开发工具配置 cheap-source-map ##区分开发环境和生产环境
  • sparrow.js(开发环境,未压缩校验,一些开发环境的配置和代码)
  • sparrow.min.js(生产环境)
process.env.WEBPACK_ENV
yargs
	npm i yargs --save-dev
	var mode = require('yargs').argv.mode;

##将用于生产环境的代码压缩

webpack.optimize.UglifyJsPlugin
  • 提供生产环境和开发环境的文件名需要区分 ##eslint
npm i eslint eslint-loader --save-dev
eslint --init

##测试

  • mocha测试框架
  • chai断言库

##代码push到github

将包发布到npm

npm adduser
npm publish