一、项目结构
├── .babelrc // babel 配置 ├── .commitlintrc.js // git commit 配置 ├── .eslintrc.js // eslint 配置 ├── .gitignore // git 忽略文件 ├── .npmignore // npm 忽略文件 ├── README.md // 项目介绍 ├── dist // 生产目录 │ └── bundle.js // 打包后的 js 文件 ├── package-lock.json ├── package.json // 项目配置 ├── src // 源文件目录 │ ├── index.js // 入口文件 │ └── util.js // 功能函数 └── webpack.config.js // webpack 配置二、开发
1、新建
mkdir package cd package npm init2、安装ESlint
(ESLint 是一个 可组装的 JavaScript 和 JSX 检查工具,可以用来保证写出语法正确、风格统一的代码)3、配置Commitlint
(commitlint 是一个代码的提交规范校验工具,优雅、清晰的提交历史方便团队协作和快速定位问题)(1)安装 Commitlint 脚手架与 Git Hook 工具
npm install @commitlint/cli @commitlint/config-conventional husky --save-dev(2)增加 commitlintrc
echo "module.exports = {extends: ['@commitlint/config-conventional']};" > .commitlintrc.js(3)配置 Git Hooks
//package.json { "husky": { "hooks": { "pre-commit": "eslint src --fix --ext .js", "commit-msg": "commitlint -e" } }4、打包
(1)安装 webpack
npm install webpack webpack-cli --save-dev(2)增加 webpack.config.js
(组件一般需要提供 <script> 和 npm install 两种引入方式,所以我们打包时需要选择 umd 规范。) const path = require('path'); module.exports = { entry: './src/index.js', output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.js', library: 'package', // 导出变量名 libraryTarget: 'umd', // 所有的模块定义下都可运行的方式。它将在 CommonJS, AMD 环境下运行,或将模块导出到 global 下的变 量 } }(3)配置 npm 命令
//package.json "scripts": { "build": "webpack"}
5、编译
(在我们开发组件库的过程中,可能会使用到一些 ES6、ES7 语法或者新的 API,而项目打包时为了加快打包构建速度会忽略到 node_modules 下的文件,所以组件最终应该提供一个编译好的 ES5 语法文件,这里我们使用 babel 和 babel polyfill 来编译组件.)(1)安装 Babel
npm install @babel/core @babel/preset-env babel-loader @babel/plugin-transform-runtime @babel/runtime-corejs3 --save-dev(2)增加 .babelrc
{ "presets": [ ["@babel/preset-env"] ], "plugins": [ [ "@babel/plugin-transform-runtime", { "corejs": 3 } ] ] }( 3 ) Webpack 配置 babel-loader
(组件一般需要提供 <script> 和 npm install 两种引入方式,所以我们打包时需要选择 umd 规范。) const path = require('path'); module.exports = { entry: './src/index.js', output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.js', library: 'package', libraryTarget: 'umd', }, module: { rules: [{ test: /\.js$/, loader: 'babel-loader', exclude: /node_modules/, }] } }6、开发
新建一个 src 文件夹,增加 index.js 和 util.js 文件,然后我们运行 npm run build,可以看到 dist 目录下生成了一个打包后的 js 文件。原文地址:https://www.cnblogs.com/freely/p/14470369.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。