1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| const path = require('path'); const fs = require('fs');
const config = new Map([ ['0008.md', '08 在 Webpack 中使用 Babel 转换 JavaScript 代码'], ['0009.md', '09 Webpack 中使用 TypeScript 开发项目'], ['0010.md', '10 Webpack 中样式相关的配置'], ['0011.md', '11 Webpack 中使用 lint 工具来保证代码风格和质量'], ['0012.md', '12 使用 Webpack 管理项目中的静态资源'], ['0013.md', '13 Webpack 中打包 HTML 和多页面配置'], ['0014.md', '14 Webpack Dev Server 本地开发服务'], ['0015.md', '15 Webpack 中配置React和Vue开发环境'], ['0016.md', '16 Webpack 环境相关配置及配置文件拆分'], ['0017.md', '17 Webpack 优化之体积优化'], ['0018.md', '18 Webpack 优化之增强缓存命中率'], ['0019.md', '19 使用 Webpack 的 splitChunks 功能来拆分代码'], ['0020.md', '20 Webpack 优化之速度优化'], ['0021.md', '21 使用 Webpack 的 Tree-Shaking'], ['0022.md', '22 为你准备了一份 Webpack 工程化最佳实践总结'], ['0023.md', '23 怎么调试 Webpack?'], ['0024.md', '24 Tapable —— Webpack 的核心模块'], ['0025.md', '25 Webpack 的 Compiler 和 Compilation'], ['0026.md', '26 Webpack 工作流程'], ['0027.md', '27 从 Webpack 的产出代码来看 Webpack 是怎么执行的'], ['0028.md', '28 Webpack 的模块热替换做了什么?'], ['0029.md', '29 实战:使用 PostCSS 打造移动适配方案'], ['0030.md', '30 实战:手写一个 markdown-loader'], ['0031.md', '31 实战:手写一个 prefetch-webpack-plugin 插件'], ['0032.md', '32 实战:使用 Express 和中间件来实现 Webpack-dev-server'], ['0033.md', '33 实战:使用 Stats 数据结构生成 Webpack 构建报告'], ['0034.md', '34 实战:给 Webpack 项目添加 modern'], ['0035.md', '35 Webpack 5.0'], ['0036.md', '36 课程总结'], ['0037.md', '37 附录:项目中常用的 loader'], ['0038.md', '38 附录:项目中常用的插件'] ])
config.forEach((value,key) => { const filepath = path.resolve(__dirname, key); let content = fs.readFileSync(filepath, {encoding: 'utf-8'}); content = `--- title: ${value} description: lang: zh-CN ---
${content} ` fs.writeFileSync(filepath,content); fs.renameSync(filepath, path.resolve(__dirname, `${value}.md`)); })
|