✨ 前言
web前端发展速度以迅猛著称。js在出生以来,一直在经历一次又一次的变化。自从服务器端js(nodejs)出现到现在,前端技术群阀割据。当前已经形成了以webpack为核心,babel,等技术独霸一方的局面。
无论是想用什么框架,似乎搭建环境成为了最大的难题。web前端工程师,不知什么时候成为了配置文件工程师。
本文将带领大家认识一个新兴的打包工具parcel,为前端0基础从同学打造一篇速食指南。
🍳 parcel简介
parcel是一个零配置打包工具。
对前端不了解的小伙伴们可能不知道,前端开发目前已经发展到了相当复杂的地步。学会html,css,js只是开始。项目的源码结构一定要便于人理解,但是项目层级的递增,文件数量增加都会导致网页性能的下降。加上源代码中有大量的注释,空行等无效部分,web前端项目从编写完到优化需要经历多个工序。诸如:代码压缩,资源合并,目录结构扁平化等等。当然,这些工序都有成熟的工具和方法来进行,并不需要开发人员烦恼具体的处理方法。打包工具正式因此产生的。不夸张的说,js现在已经完全像一个编译语言一样了。项目的源代码,与编译后的结果完全是两个样子。
打包工具的配置一直是个难题。webpack的配置,会随着项目使用开发技术的增加而增加。webpack配置文件,可以说是对快速原型开发最大的阻碍。所以,当前热门的web前端框架。如vue,react,angular都有自己的脚手架来方便的快速产生一个demo项目。而随着使用技术的增加,web前端开发者需要主动编辑webpack配置文件。这个时候仅仅是噩梦的开始。随之而来的,babel配置,ts配置将把程序员拉向深渊。
零配置,顾名思义,不需要写配置文件。这正是parcel存在的理由和意义。简而言之,parcel最大的优点:
- 极速的原型开发(再也不需要管配置文件了)
- 降低前端入门难度
这些,也正是我带来这篇教程的理由。
📕 菜单
接下来我们进行一些准备工作
- 安装最新版本的node和npm(服务端js的执行环境和包管理器)
- 没了(好吧就这样吧)
nodejs首页链接,到这里下载一个nodejs。并且正确的配置环境变量等东西(我猜安装程序是自动配置的,毕竟python会,如果不是问问百度怎么装好这个东西)
🍽 开始
parcel快速开始,到这里参考parcel的官方教程。不过这个官方教程和typescript的一样,开头不由分说的直接要你全局安装parcel。这样的瓜皮操作会让你的项目在别的地方跑不起来。建议按照我的来走(不过肯定有人爱走弯路)。
🍎 初始化项目
新建一个空的文件夹,作为项目目录。进入其中,按住shift右键单击,选择在此处打开powershell窗口。这个选项不按住shift没有,是一个Windows的神奇操作。当然,非Windows用户,我就当你什么都懂了😁。
输入以下命令初始化项目
1 | npm init -y |
新建.gitignore文件,输入以下内容
1 | .vscode |
gitignore是我从网上随便找的一份稍加修改的,你可以用的时候自己改,比如mac用户加上.DS_Store等
接下来初始化git仓库
1 | git init |
你要是git都没有,或者不会用。emmm,我怎么 隐 隐 约 约 记得我这个文章就是发布在GitHub Pages上面的呢?
接下来按照自己的情况,决定是否把仓库发布到诸如github,gitlab,gitee等地方备份或者分享。
🍎 安装依赖
1 | npm install -D parcel-bundler |
分别安装了parcel打包工具(开发依赖),和normalize.css(项目依赖)。这两者的区别在于parcel是用来打包的,我们项目的最终结果里面没有他(工具人)。normalize.css是屏蔽浏览器见差异的初始化样式。
🍎 代码编写
创建index.html 和 main.js
创建index.html
1 | <!DOCTYPE html> |
创建src文件夹,在其中创建main.js
1 | import Vue from 'vue' |
在src文件夹中,创建App.vue
1 | <template> |
🍎 构建脚本在package.json的scripts中添加两个字段,如果你的项目里面原来是这样
1 | "scripts": { |
添加完应该是这样
1 | "scripts": { |
🍎 运行开发服务器
1 | npm run dev |
进去吃点东西
🍎 打包
1 | npm run build |
运行命令后产生dist文件夹,里面的内容是要发布到服务器的最终结果。如果你想试试但是没有服务器,可以自己弄个GitHub Pages。然后给自己的朋友玩一玩。
🍇 总结
这篇文章带大家了解了以下parcel的基本使用方法。里面使用了vue框架,但是没有进行任何配置,拿来就用。同样,如果你喜欢,可以直接用react,pug,less,sass等技术。最夸张的,甚至可以直接在前端项目中写rust😲。这会自动被编译成wasm。
最后,文章写的仓促,欢迎大家提出意见和建议,指出错误。
当然,欢迎投喂。