5公分厚挤塑板多少钱一平方

四川建材 2021-06-01 阅读:242

1. 前言

笔者两年前曾写过一篇文章《Webpack4 搭建 Vue 项目》,后来随着 webpack5 和 vue3 的面世,一直想5公分厚挤塑板多少钱一平方升级下我这个 createVue 项目,但是苦于没有时间(其实是因为懒),一直拖延至今。捣鼓了好几天,终于搭建好整个项目,因此仅以此文记录升级搭建的过程。

PS: 其实也可以用官方脚手架搭建的,为何要自己从头做起呢?有脚手架我不用,我就折腾。哎,就是玩儿~

2. 准备工作

为何升级?除了折腾外,便是享受新版本带给我们的新特性体验。

Webpack5 的新特性

持久化缓存

moduleIds & chunkIds 的优化

更智能的 tree shaking

Module Federation

...

Vue3 的新特性

更小

更快

加强 TypeScript 支持

加强 API 设计一致性

提高自身可维护性

开放更多底层功能

确定项目技术栈

编程语言:TypeScript 4.2.4

构建工具:[Webpack 5.33.2]

前端框架:Vue 3.0.11

路由工具:Vue Router 4.0.6

状态管理:Vuex 4.0.0

CSS 预编译:Sass / Less

HTTP 工具:Axios

Git Hook 工具:Husky + Lint-staged

代码规范:EditorConfig + Prettier + ESLint

提交规范:Commitlint

3. 项目搭建

此文并不是从零搭建,而是在 createVue@v1.0.0 的基础上修改搭建,如若看不懂,可以先看《Webpack4 搭建 Vue 项目》,跟着一步步搭建,后再看此文升级

创建 createVue 文件夹,进入该文件夹, npm init 初始化项目

老规矩,安装 webpack 四件套

webpack5 启动开发服务器命令与之前有所变化,从 转变为 , 因此 package.json 中 script 的 start 修改为:

创建相应文件

与之前没有太大差异。增加变动的有一下几点:

1). 持久化缓存,增加 cache 配置. v5 中缓存默认是 memory,修改设置"filesystem"写入硬盘

2). 去除插件 clean-webpack-plugin(v5支持),webpack.HashedModuleIdsPlugin(v5更好的 moduleIds & chunkIds),HardSourceWebpackPlugin(v5支持),happypack(v5不兼容)

安装 vue 核心解析插件

解析插件有所不同,从 变成了 , 保持不变。

安装 vue3 及相关库,添加 vue 类型文件

src 文件夹下添加 shims-vue.d.ts 文件,解决 vue 类型报错

安装 html 模板解析插件

安装 typescript 及解析插件

配置ts-loader解析:

ts-loader 为单进程执行类型检查和转译,因此效率有些慢,可以用多进程方案:即关闭ts-loader的类型检查,类型检查由 插件执行。

至此项目基本可以跑起来了,那么有个问题了:Ts 可以编译为指定版本的 js,那么还需要 babel 么?

tsc 的 target 只转译语法,不集成 polyfill,所以还是得要 babel。

比如把箭头函数转成普通 function、aysnc + await 变成 Promise.then,这是语法转译;

因此我们项目里还是需要 babel.

Webpack 转译 Typescript 现有方案:

综合考虑性能和扩展性,目前比较推荐的是 方案。

在 babel7 之前,是需要同时使用 ts-loader 和 babel-loader 的,其编译过程 。可见编译了两次js,效率有些低下。但是 babel7 出来之后有了解析 typescript 的能力,有了这一层面的支持,我们就可以只使用 babel,而不用再加一轮 ts 的编译流程了。

在 babel 7 中,我们使用新的 预设,结合一些插件便可以解析大部分的 ts 语法。

那么,Babel 是如何处理 TypeScript 代码的呢?

Babel 删除了所有 TypeScript,将其转换为常规的 JavaScript,并继续以它自己的方式处理。删除了 typescript 则不需要进行类型检查,不会有烦人的类型错误提醒,因此编译速度提升,开开心心编程

当然,类型安全性检查必不可少,我们可以统一在某个时间集中处理,增加 script:

添加 babel 解析 typescript

删除 ts-loader, 添加 babel-loader

4. 代码规范

项目中代码规范集成了 EditorConfig, Prettier, ESLint, Husky, Lint-staged,以及如何解决 Prettier 和 ESLint 的冲突的问题,具体实现可以参考 《从 0 开始手把手带你搭建一套规范的 Vue3.x 项目工程环境》这篇文章,讲的很详细这里不再赘述。

5. 提交规范

利用 inquirer 选择配置好的提交类型,以及配合 commitlint 实现 commit 检查

添加 package.json 的 script :

创建 commit/git-commit.js 文件

完成上述操作后,,执行 即可执行 commit 校验

6. 构建部署 Travis CI

Travis CI 是一款构建和测试的自动化工具,不仅可以提高效率,还能使开发流程更可靠和专业化,从而提高软件的价值。而且,它对于开源项目是免费的,不花一分钱,就能帮你做掉很多事情。详细介绍可以查看 阮一峰——《持续集成服务 Travis CI 教程》

找到对应的仓库,打开开关添加仓库

在 github 上 setting/Developer settings/Personal access token 处生成 travis token

点击对应仓库的 setting

设置环境变量 GITHUB_TOKEN 为刚才 github 处生成的 token

创建 .travis.yml 配置文件:

这样,当你 push 到 master 或者 pr 合并到 master 的时候,就会触发部署脚本的执行,将生成的 dist 推送至 gh-pages 分支

7. 存在问题及总结

构建时间比 webpack4 长,可能是由于 ts 的引入,以及 happypack 多进程构建的移除造成时间略长

dev server 不会自增 port


四川保温砂浆 挤塑板


这是四川改性挤塑板成都挤塑板,四川保温砂浆(2021-06-01 18:18:13)

评论(0)