自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一個可代替 Webpack 的構(gòu)建工具:Snowpack

開發(fā) 開發(fā)工具
Webpack是過去幾年中最受歡迎的JavaScript構(gòu)建打包工具之一,這正是得益于它靈活的構(gòu)建配置以及豐富的官方支持的第三方插件。

 [[406242]]

Webpack是過去幾年中最受歡迎的JavaScript構(gòu)建打包工具之一,這正是得益于它靈活的構(gòu)建配置以及豐富的官方支持的第三方插件。

Webpack 的主要功能是將你所有的 JavaScript 文件,連帶所有從 NPM 導(dǎo)入的模塊、圖片、CSS 和其他網(wǎng)絡(luò)資源,全部打包到一個可以被瀏覽器執(zhí)行的文件中。

Webpack 也是一個復(fù)雜的打包工具,學(xué)習(xí)曲線也比較陡峭,因為它的靈活性意味著它有非常多的功能來應(yīng)對各種不同的使用場景。更進(jìn)一步講,哪怕只是對一個文件進(jìn)行了很小的改動,Webpack 會將你的整個 JavaScript 應(yīng)用重新打包和構(gòu)建。如果對 Webpack 的工作原理理解不到位,構(gòu)建一個應(yīng)用時可能要等半小時以上。

Webpack 是 2014 年發(fā)布的。在那個時候,瀏覽器基本不支持 ECMAScript Module (ESM) 的 import 和 export 語法,所以在瀏覽器中運行 JavaScript 的方式只能是將項目中所有的模塊全部打包進(jìn)一個文件。

這其中還包括其他的流程,比如使用 Babel 將 JavaScript 從較新版本轉(zhuǎn)換為稍舊版本,以便瀏覽器可以運行該應(yīng)用。使用 Webpack 最主要的目的是創(chuàng)造最好的開發(fā)體驗,讓 JavaScript 開發(fā)者可以使用最新的功能(ES6+)。

如今 ESM 語法已經(jīng)被所有主流瀏覽器支持,所以將你所有的 JavaScript 文件打包在一起已經(jīng)不是在瀏覽器中運行應(yīng)用的必要條件了。

使用 Snowpack,無需進(jìn)行打包配置

Snowpack 是一個 JavaScript 構(gòu)建工具,它利用了瀏覽器對 ESM 的支持,讓我們可以構(gòu)建單個文件并將其發(fā)送到瀏覽器中。每一個被構(gòu)建的文件都會被緩存,在我們每修改一個文件時,只有這一個文件會被 Snowpack 重新構(gòu)建。

Snowpack 的開發(fā)服務(wù)器也做了優(yōu)化,它只會在瀏覽器請求后構(gòu)建該文件。這使得 Snowpack 可以即時啟動(小于 50 毫秒)并且擴展到大型項目時也不會增加啟動速度。我自己做嘗試時啟動服務(wù)器只用了 35 毫秒。

Snowpack 的構(gòu)建過程

Snowpack 默認(rèn)會將你的未打包應(yīng)用部署到生產(chǎn)環(huán)境,但是你也要進(jìn)行一些構(gòu)建相關(guān)的優(yōu)化,比如最小化、代碼分割、tree-shaking、懶加載等等。

Snowpack 同時支持通過插件連接 Webpack 來打包生產(chǎn)版本的應(yīng)用。這樣,由于 Snowpack 已經(jīng)轉(zhuǎn)譯了你的代碼,你的打包工具(Webpack)只需要將常規(guī)的 HTML、CSS 和 JavaScript 文件打包。

這也是為什么你在打包過程中不需要復(fù)雜的 Webpack 配置文件。

最后,你也可以設(shè)置 package.json 中的 browserslist 屬性,來設(shè)定支持的瀏覽器版本:

  1. /* package.json */ 
  2. "browserslist"">0.75%, not ie 11, not UCAndroid >0, not OperaMini all"

在你執(zhí)行 snowpack build 指令來構(gòu)建生產(chǎn)環(huán)境的項目時,該屬性會自動被應(yīng)用。Snowpack 不會在構(gòu)建開發(fā)版本時執(zhí)行任何轉(zhuǎn)譯,所以這不是一個問題,因為大部分時間你都會在最新的瀏覽器版本下開發(fā)。

上手 Snowpack

要開始使用 Snowpack,你可以立即使用 Create Snowpack App (CSA) 和 NPX 來創(chuàng)建 Snowpack 應(yīng)用。例如,你可以用如下指令來用 CSA 新建一個初始化 React 應(yīng)用:

  1. npx create-snowpack-app react-snowpack --template @snowpack/app-template-react 

一個新的 react-snowpack 文件夾會被創(chuàng)建,并且附帶最基礎(chǔ)的依賴:

  1. "scripts": { 
  2.   "start""snowpack dev"
  3.   "build""snowpack build"
  4.   "test""web-test-runner \"src/**/*.test.jsx\""
  5.   "format""prettier --write \"src/**/*.{js,jsx}\""
  6.   "lint""prettier --check \"src/**/*.{js,jsx}\"" 
  7. }, 
  8. "dependencies": { 
  9.   "react""^17.0.0"
  10.   "react-dom""^17.0.0" 
  11. }, 
  12. "devDependencies": { 
  13.   "@snowpack/plugin-dotenv""^2.0.5"
  14.   "@snowpack/plugin-react-refresh""^2.4.0"
  15.   "@snowpack/web-test-runner-plugin""^0.2.0"
  16.   "@testing-library/react""^11.0.0"
  17.   "@web/test-runner""^0.12.0"
  18.   "chai""^4.2.0"
  19.   "prettier""^2.0.5"
  20.   "snowpack""^3.0.1" 

你立即就可以使用 npm start 指令運行這個應(yīng)用。本地的調(diào)試服務(wù)器會在 8080 端口運行。CSA 的 React 模板和 Create React App 的默認(rèn)模板非常相似:

Snowpack 支持主流庫的 許多官方模板,如 React、Vue 和 Svelte。你只需要在指令中加入 --template 選項。

結(jié)語

你使用一個打包工具時應(yīng)該是因為你想要使用它,而不是因為你需要使用它 —— Snowpack 官方文檔

Webpack 和 Snowpack 的發(fā)布相隔了數(shù)年,盡管 Webpack 一直是打包 JavaScript 模塊時人氣最高的選擇,但瀏覽器對 ESM 模塊的支持開創(chuàng)了一種新的開發(fā) Web 應(yīng)用的方式。

伴隨著不打包開發(fā)以及開發(fā)中快速構(gòu)建應(yīng)用的能力,Snowpack 將成為一個激動人心的 Webpack 替代品,它讓我們可以更輕松地開發(fā) JavaScript 應(yīng)用。與此同時,它還能讓你利用 Webpack 打包生產(chǎn)版本,對你的應(yīng)用實現(xiàn)構(gòu)建優(yōu)化。

觀看Snowpack 的官方文檔,可了解更多。

原文:https://blog.bitsrc.io/snowpack-an-alternative-build-tool-to-webpack-9e8da197071d

 

責(zé)任編輯:武曉燕 來源: 新鈦云服
相關(guān)推薦

2022-04-18 11:13:34

前端開發(fā)工具

2015-04-01 14:40:26

Java構(gòu)建工具build.xml

2021-05-25 16:34:06

JavaScript前端

2015-12-04 11:36:04

SaaS架構(gòu)設(shè)計可持續(xù)

2014-10-15 11:01:02

Web應(yīng)用測試應(yīng)用

2022-04-12 14:00:05

元宇宙人工智能安全

2021-09-28 08:08:32

Snowpack前端工具

2024-08-07 08:48:09

2023-08-22 10:13:53

模塊工具JavaScrip

2024-06-04 22:04:39

2023-03-15 23:59:13

前端構(gòu)建工具

2022-05-16 09:14:28

前端構(gòu)建工具

2022-02-23 10:48:52

TodoList應(yīng)用項目Strve開發(fā)

2022-09-01 11:02:42

前端工具

2020-09-07 14:40:20

Vue.js構(gòu)建工具前端

2023-09-15 10:10:05

R 語言

2021-11-10 09:30:11

Python工具命令

2018-07-27 09:05:31

開源技術(shù) 軟件

2018-07-24 09:21:39

Dropbox開源文件共享應(yīng)用

2022-08-12 07:56:41

Python項目管理構(gòu)建工具
點贊
收藏

51CTO技術(shù)棧公眾號