成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Parcel:常見(jiàn)技術(shù)棧的集成方式

開(kāi)發(fā) 開(kāi)發(fā)工具
Parcel 是一個(gè)前端構(gòu)建工具,Parcel 官網(wǎng) 將它定義為極速零配置的Web應(yīng)用打包工具。沒(méi)錯(cuò),又是一個(gè)構(gòu)建工具,你一定會(huì)想,為什么前端的構(gòu)建工具層出不窮,搞那么多工具又要花時(shí)間去學(xué)習(xí),真的有意義嗎?在 webpack 已經(jīng)成為前端構(gòu)建工具主流的今天,一個(gè)新的工具能有什么優(yōu)勢(shì)來(lái)站穩(wěn)腳跟呢?

Parcel 是一個(gè)前端構(gòu)建工具,Parcel 官網(wǎng) 將它定義為極速零配置的Web應(yīng)用打包工具。沒(méi)錯(cuò),又是一個(gè)構(gòu)建工具,你一定會(huì)想,為什么前端的構(gòu)建工具層出不窮,搞那么多工具又要花時(shí)間去學(xué)習(xí),真的有意義嗎?在 webpack 已經(jīng)成為前端構(gòu)建工具主流的今天,一個(gè)新的工具能有什么優(yōu)勢(shì)來(lái)站穩(wěn)腳跟呢?

[[215124]]

前言

為什么要用 Parcel

一個(gè)好的打包工具在前端工程中占著比較重要的地位。然,何謂之好?或功能強(qiáng)大,或簡(jiǎn)單易用,或提高效率,或適合自己。在時(shí)代不斷發(fā)展中,一個(gè)個(gè)好的工具正在被一個(gè)更好的工具所替代。隨著對(duì) webpack 復(fù)雜配置的吐槽聲越來(lái)越多,Parcel 打著 “快速、零配置” 的旗子出來(lái)了。

Parcel 的特性

  • 快速打包:?jiǎn)⒂枚嗪司幾g,并具有文件系統(tǒng)緩存
  • 打包所有資源:支持JS,CSS,HTML,文件資源等等 - 不需要安裝任何插件
  • 自動(dòng)轉(zhuǎn)換:使用 Babel,PostCSS 和 PostHTML 自動(dòng)轉(zhuǎn)換
  • 零配置代碼拆分:使用動(dòng)態(tài) import() 語(yǔ)法拆分您的輸出包,只加載初始加載時(shí)所需的內(nèi)容
  • 模塊熱替換:不需要進(jìn)行任何配置
  • 友好的錯(cuò)誤記錄:以語(yǔ)法高亮的形式打印的代碼幀,以幫助你查明問(wèn)題

如何使用

快速使用

全局安裝 npm i parcel-bundler -g 或 yarn add parcel-bundler global

Parcel 使用一個(gè)文件作為入口,***是 HTML 或 JavaScript 文件,我們?cè)陧?xiàng)目中新建 index.html 文件,直接運(yùn)行命令 parcel index.html 即可啟動(dòng)本地服務(wù)器

在瀏覽器中訪問(wèn) http://localhost:1234/ ,可以通過(guò) parcel index.html -p 8888 重新設(shè)置端口號(hào)。

無(wú)需配置文件!

Parcel 支持 CommonJS 模塊語(yǔ)法、ES6 模塊語(yǔ)法、在 js 文件中導(dǎo)入 node 模塊或 css、在 css 中使用 import 等,也都無(wú)需配置文件!

  1. <!-- index.html --> 
  2. <!DOCTYPE html> 
  3. <html lang="en"
  4.     <head> 
  5.         <title>Parcel</title> 
  6.         <meta charset="UTF-8"
  7.     </head> 
  8.     <body> 
  9.         <h1>Hello Parcel</h1> 
  10.         <script src="src/js/index.js"></script> 
  11.     </body> 
  12. </html> 
  1. // src/js/index.js 
  2. const main1 = require('./main1.js');    // 支持 CommonJS 模塊語(yǔ)法 
  3. import main2 from './main2.js';         // 支持 ES6 模塊語(yǔ)法 
  4. import '../css/index.css';              // 支持在 js 中導(dǎo)入 css 
  5. main1(); 
  6. main2(); 

上面只是簡(jiǎn)單的使用了 Parcel,但在實(shí)際項(xiàng)目中,我們會(huì)用到各種技術(shù)棧,下面我們來(lái)看看 Parcel 如何集成各種技術(shù)棧的。

注意:Parcel 里使用了 async await,因此需要 node 7.6 以上的版本才支持

集成技術(shù)棧

首先在項(xiàng)目下創(chuàng)建 package.json 、.babelrc、以及 index-react.html、index-vue.html、index-ts.html 三個(gè)作為各自技術(shù)棧 demo 的入口文件。

在 package.json 中添加以下命令

  1. "scripts": { 
  2.   "react""parcel index-react.html"
  3.   "vue""parcel index-vue.html"
  4.   "ts""parcel index-ts.html" 

React

安裝 React 的相關(guān)依賴 npm i -S parcel-bundler react react-dom babel-preset-env babel-preset-react

在 .babelrc 中添加

  1.   "presets": ["env","react"

這就是上面講到的 Parcel 的特性:自動(dòng)轉(zhuǎn)換。該文件是讓 Parcel 自動(dòng)轉(zhuǎn)換 ES6 和 React JSX。

  1. <!-- index-react.html --> 
  2. <!DOCTYPE html> 
  3. <html lang="en"
  4.     <head> 
  5.         <title>Parcel React</title> 
  6.         <meta charset="UTF-8"
  7.     </head> 
  8.     <body> 
  9.         <div id="react-app"></div> 
  10.         <script src="src/react/index.js"></script> 
  11.     </body> 
  12. </html> 

運(yùn)行命令 npm run react 打開(kāi) http://localhost:1234/ 即可看到 Hello React

Vue

就在不久前,Parcel 終于支持 .vue 文件了,只需要引入一個(gè)包 parcel-plugin-vue,不需要任何配置,即可打包 Vue 了。

安裝 Vue 相關(guān)依賴,npm i -S vue parcel-plugin-vue

  1. <!-- index-vue.html --> 
  2. <!DOCTYPE html> 
  3. <html lang="en"
  4.     <head> 
  5.         <title>Parcel Vue</title> 
  6.         <meta charset="UTF-8"
  7.     </head> 
  8.     <body> 
  9.         <div id="vue-app"></div> 
  10.         <script src="src/vue/index.js"></script> 
  11.     </body> 
  12. </html> 
  1. // src/vue/index.js 
  2. import Vue from 'vue'
  3. import App from './app.vue'
  4. new Vue({ 
  5.     el: '#vue-app'
  6.     render: h => h(App) 
  7. }) 
  1. <!-- src/vue/app.vue --> 
  2. <template> 
  3.     <div> 
  4.         <h1>Hello Vue</h1> 
  5.     </div> 
  6. </template> 

運(yùn)行命令 npm run vue 打開(kāi) http://localhost:1234/ 即可看到 Hello Vue

TypeScript

集成 TypeScript 也非常簡(jiǎn)單,只需要安裝 typescript 模塊即可,也無(wú)需配置。

安裝 TypeScript 相關(guān)依賴,npm i -S typescript

  1. <!-- index-ts.html --> 
  2. <!DOCTYPE html> 
  3. <html lang="en"
  4.     <head> 
  5.         <title>Parcel TypeScript</title> 
  6.         <meta charset="UTF-8"
  7.     </head> 
  8.     <body> 
  9.         <h1 id="ts-app"></h1> 
  10.         <script src="src/typescript/index.ts"></script> 
  11.     </body> 
  12. </html> 
  1. interface Name { 
  2.     value: string; 
  3. function showName(nameName){ 
  4.     document.getElementById('ts-app').innerHTML = 'Hello ' + name.value; 
  5. showName({value: 'TypeScript'}); 

運(yùn)行命令 npm run ts 打開(kāi) http://localhost:1234/ 即可看到 Hello TypeScript

Sass

將 Sass 在上面技術(shù)棧中使用也非常簡(jiǎn)單,只需要安裝 node-sass 模塊即可,也無(wú)需配置。

安裝 Sass 相關(guān)依賴,npm 可能會(huì)下載不成功,這里使用 cnpm 來(lái)安裝,cnpm i -S node-sass

在 src/vue/app.vue 中來(lái)使用 Sass

  1. <!-- src/vue/app.vue --> 
  2. <template> 
  3.     <div class="main"
  4.         <h1>Hello Vue</h1> 
  5.     </div> 
  6. </template> 
  7. <style lang="scss"
  8.     @import '../sass/main.scss'
  9. </style> 
  1. .main{ 
  2.     h1{ 
  3.         color: #0099ff; 
  4.     } 

再次運(yùn)行命令 npm run vue 即可看到帶有藍(lán)色字體的 Hello Vue

以上的 demo 源碼地址:parcel-demo

生產(chǎn)環(huán)境

  • 設(shè)置環(huán)境變量: parcel build index.html NODE_ENV=production
  • 設(shè)置輸出目錄: parcel build index.html -d build/output
  • 設(shè)置要提供服務(wù)的公共 URL: parcel build index.html --public-url ./
  • 禁用壓縮: parcel build index.html --no-minify
  • 禁用文件系統(tǒng)緩存: parcel build index.html --no-cache

疑問(wèn)

  • 輸出目錄里是否可以再分子目錄,例如 css / js / img 等?
  • 頁(yè)面引用的 html 被打包后也會(huì)重命名成很長(zhǎng)的一串,是否可以不重命名?

前端情報(bào)局

鑒于最近 Parcel 打著零配置的口號(hào)俘獲了不少前端開(kāi)發(fā)者的心,并且伴隨著吐槽 webpack 使用配置復(fù)雜的聲音。webpack 核心開(kāi)發(fā)者特意解釋道,webpack v4.0.0-alpha.1 中加入了 mode 這個(gè)配置,這使得很多復(fù)雜繁瑣的配置(諸如: sourcemaps、 tree shaking,、minification、scope hoisting)webpack 都替我們做好了,對(duì)于使用者來(lái)說(shuō),基本上也是零配置了。

【本文為51CTO專欄作者“林鑫”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過(guò)微信公眾號(hào)聯(lián)系作者獲取授權(quán)】

戳這里,看該作者更多好文

 

責(zé)任編輯:武曉燕 來(lái)源: 51CTO專欄
相關(guān)推薦

2025-02-27 00:00:30

SpringJava方式

2009-12-29 13:56:07

DSL技術(shù)

2023-03-14 18:06:07

flink數(shù)字集成

2022-09-15 23:58:51

機(jī)器學(xué)習(xí)集成數(shù)據(jù)

2023-12-09 17:04:26

nDPIHyperscan

2009-06-25 17:24:06

Hibernate主鍵

2009-12-29 10:32:24

WPF Listbox

2022-09-06 15:00:09

機(jī)器學(xué)習(xí)集成數(shù)據(jù)集

2023-03-17 16:30:15

云集成架構(gòu)組件

2009-11-26 13:11:24

PHP字符串

2009-07-14 13:08:55

WebWork與Spr

2022-11-15 11:04:12

2019-05-16 09:28:12

集成學(xué)習(xí)機(jī)器學(xué)習(xí)模型

2023-08-08 14:56:27

ParcelRustDemo

2018-01-26 08:26:35

RAID陣列組成

2016-01-22 10:53:09

前端APP融合

2009-07-21 12:59:25

Scala標(biāo)識(shí)符

2013-05-27 11:14:34

IT地址IP地址組成局域網(wǎng)IP

2025-01-21 08:00:00

限流微服務(wù)算法

2025-05-06 09:38:50

點(diǎn)贊
收藏

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

主站蜘蛛池模板: 国产欧美一区二区三区久久人妖 | 日韩精品免费在线观看 | 亚洲啪啪 | 中文字幕视频在线观看免费 | 成人毛片在线视频 | 久久精品欧美一区二区三区不卡 | 国产美女自拍视频 | 国产精品视频一二三区 | 成人一区在线观看 | 99久久婷婷国产综合精品首页 | 国产成人精品一区二区三区视频 | 成人亚洲精品久久久久软件 | 日韩高清一区 | 国产精品夜色一区二区三区 | 国产精品自产拍在线观看蜜 | 草久视频 | 在线免费观看成人 | 在线黄色网 | 激情福利视频 | 99亚洲精品 | 精品国产乱码久久久久久蜜退臀 | 国产精品日韩一区二区 | 亚洲 中文 欧美 日韩 在线观看 | 亚洲狠狠 | 四虎最新视频 | 日韩和的一区二区 | 成人一区二区在线 | 国产精品自产拍 | 日韩欧美理论片 | 国产在线激情视频 | 成人高清视频在线观看 | 特黄av| 国产999精品久久久久久 | 亚洲国产日韩一区 | 日韩在线播放第一页 | 美女视频一区二区 | 国产区视频在线观看 | 精品视频一区在线 | 成人午夜激情 | 天天操天天插天天干 | 免费h视频 |