偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

 [[406242]]

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

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

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

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

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

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

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

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

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

Snowpack 的構(gòu)建過(guò)程

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

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

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

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

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

在你執(zhí)行 snowpack build 指令來(lái)構(gòu)建生產(chǎn)環(huán)境的項(xiàng)目時(shí),該屬性會(huì)自動(dòng)被應(yīng)用。Snowpack 不會(huì)在構(gòu)建開(kāi)發(fā)版本時(shí)執(zhí)行任何轉(zhuǎn)譯,所以這不是一個(gè)問(wèn)題,因?yàn)榇蟛糠謺r(shí)間你都會(huì)在最新的瀏覽器版本下開(kāi)發(fā)。

上手 Snowpack

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

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

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

  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ùn)行這個(gè)應(yīng)用。本地的調(diào)試服務(wù)器會(huì)在 8080 端口運(yùn)行。CSA 的 React 模板和 Create React App 的默認(rèn)模板非常相似:

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

結(jié)語(yǔ)

你使用一個(gè)打包工具時(shí)應(yīng)該是因?yàn)槟阆胍褂盟?,而不是因?yàn)槟阈枰褂盟?—— Snowpack 官方文檔

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

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

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

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

 

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

2022-04-18 11:13:34

前端開(kāi)發(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è)計(jì)可持續(xù)

2022-04-12 14:00:05

元宇宙人工智能安全

2014-10-15 11:01:02

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

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)用項(xiàng)目Strve開(kāi)發(fā)

2022-09-01 11:02:42

前端工具

2023-09-15 10:10:05

R 語(yǔ)言

2020-09-07 14:40:20

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

2021-11-10 09:30:11

Python工具命令

2018-07-27 09:05:31

開(kāi)源技術(shù) 軟件

2018-07-24 09:21:39

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

2022-08-12 07:56:41

Python項(xiàng)目管理構(gòu)建工具
點(diǎn)贊
收藏

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