element 源码解读
1 | npm run dev |
运行 命令详情
1 | npm run bootstrap && npm run build:file && cross-env NODE_ENV=development webpack-dev-server --config build/webpack.demo.js & node build/bin/template.js" |
更新依赖 npm run bootstrap
更新项目依赖
1 | yarn || npm i |
文件预处理 npm run build:file
处理文件
1 | node build/bin/iconInit.js & node build/bin/build-entry.js & node build/bin/i18n.js & node build/bin/version.js |
让我们看看每个部分分别作了什么
处理icon node build/bin/iconInit.js
通过读取icon.scss文件初始化icon列表,生成文件输出到example/icon.json
☁️ 通过postcss解析文件
1 | ; |
生成入口文件 node build/bin/build-entry.js
生成src/index.js文件
- components.json文件(文件中保存所有组件,key为组件名称,value为组件文件路径)
- 定义一个index.js文件内容的基本模板
- 读取components.json文件,动态根据模板生成index.js文件,其中包含所有组件的引用
1 | var Components = require('../../components.json'); |
🍃知识点:
Vue.use(plugin) 安装插件(plugin:如果是对象要包含install方法)使用Vue.use会自动足迹多次调用,保证install函数只会调用一次
使用场景
- 添加全局方法
- 添加全局资源,如directive
- 注入组件选项,Vue.mix
- 添加示例, Vue.prototype.$myMethod
国际化 node build/bin/i18n.js
关于国际化的处理【此处处理的十几个大的板块的页面】
1 | use strict'; |
🍃 知识点
.tpl文件,是template的缩写,用来保存模板文件
版本处理 node build/bin/version.js
1 | var fs = require('fs'); |
运行
webpack-dev-server
运行指令
1 | cross-env NODE_ENV=development webpack-dev-server --config build/webpack.demo.js |
✨ build/webpack.demo.js 文件
🍃相关知识了解
vue-markdown-loader
https://www.npmjs.com/package/vue-markdown-loader
使用markdown-it 吧.md文件转换为Vue 组件
也可以自定义模块,例如下面🌰
1
2
3
4 > ::: warning
> *here be dragons*
> :::
>
>
将转换为
1
2
3
4 > <div class="warning">
> <em>here be dragons</em>
> </div>
>
markdown-it-anchor
https://github.com/valeriangalliat/markdown-it-anchor
为md文件转换的html添加锚点
markdown-it-container
对自定义模块进行特殊处理
应用
主要看对.md 文件的处理
1 | const path = require('path'); |
node build/bin/template.js
监听模板文件(‘./examples/pages/template’)如果模板文件变化运行 npm run i18n