?? 使用 Dawn 快速搭建 React 項目!

開發一個 React 項目,通常避免不了要去配置 Webpack 和 babel 之類,以支持 commonjs 或 es 模塊及各種 es 新語法,及進行 jsx 語法的轉義。當然也可以用 create-react-appp 腳手架快速創建一個 react 項目,但與此同時 create-react-app常常又顯的不太自由。

在配置 webpack 時,看著上百行的 webpack.config.js 是不是很鬧心?為了重用是不是在多個項目間各種 ctrl-c -> ctrl-v,整個配置起來還是稍顯麻煩,對於新手用戶常常更是一頭霧水,事實上,最大化重用和簡化構建配置也是 dawn 的目標之一。

本文是一篇 Dawn 使用入門文章,介紹如何從「零」開始「手動配置」一個基於 dawn 的 react 工程。

一、環境準備(可略過)

# 1. 安裝 NVMncurl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bashnn# 2. 安裝 Nodennvm install 8.6.0nnvm alias default 8.6.0nn# 3. 安裝 Dawnnnpm i dawn -gn

二、創建項目 & 編寫代碼

創建一個普通的 Node 項目

# 1. 創建項目目錄nmkdir react-demoncd react-demonn# 2. 初始化 packagennpm initn

安裝 react & react-dom

npm i react react-dom --save-devn

用你的編輯器,打開項目根目錄,比如 vscode

vscode .n

在項目根目錄創建 src 目錄,並在 src 目錄中創建 index.js,並輸入如下代碼

import React from react;nimport ReactDOM from react-dom;nnfunction App() {n return <div>n Hello Dawn!n </div>;n}nnReactDOM.render(n <App />, document.getElementById(root)n);n

在 src/assets 目錄,並在 src/assets 目錄中創建 index.html,並輸入如下代碼

<!DOCTYPE html>n<html lang="en">nn<head>n <meta charset="UTF-8">n <meta name="viewport" content="width_=device-width, initial-scale=1.0">n <meta http-equiv="X-UA-Compatible" content="ie=edge">n <title>Hello Dawn!</title>n</head>nn<body>n <div id="root"></div>n</body>nn</html>n

三、添加構建配置

在項目根目錄創建 .dawn 目錄,並在 `.dawn` 目錄中創建 `pipe.yml`,然後輸入如下配置

build:n - name: cleann - name: webpackn

好了,現在構建一下我們的代碼吧,執行如下命令

dn buildn

命令執行完畢,會看到項目根目錄多了一個 build 這便是構建結果,簡單到想哭吧。

如上配置,在 build 的 pipeline 中添加了 clean 和 webpack 兩個中間件,在每次執行 dn build 時,pipeline 中的 clean會清理 build 目錄,然後 webpack 會接著進行構建,並把構構建結果放入 build 目錄。

等一下,想要監聽文件的「實時構建」?想要一個用於開發的 「Dev Server」?想要瀏覽器「自動同步」?

看下邊,配置一下 dev 的 pipeline,在剛剛的 pipe.yml 中加入 dev 配置

build:n - name: cleann - name: webpacknndev:n - name: cleann - name: webpackn watch: truen - name: servern - name: browser-syncn

現在我們執行一下如下命令

dn devn

在 dev 的 pipeline 中,我們把 webpack 的 watch 選項打開了,打開後便能監聽文件的變化並進行「實時構建」了,接下來的任務交給 server 中間件,它會在構建啟動後啟動一個靜態的 Web Server,默認情況下會自動選擇一個「可用埠」,不出意外「瀏覽器」已經「自動打開」了。

編輯一代碼試試,browser-sync 中間件會通知瀏覽器實時自動刷新頁面,在適配不同設備開發時 browser-sync 還會在多個的設備的瀏覽器中同步。

好了,一個基本的基於 dawn 的 react 工程配置好了。文中提到的 webpack、clean、server、browser-sync,可以關注一下相關文檔。


附上一些鏈接:

  • 相關文檔(alibaba.github.io/dawn/
  • Dawn 主頁(alibaba.github.io/dawn/
  • Git Reop(github.com/alibaba/dawn

(全文完)

推薦閱讀:

HTML里為什麼一些input里要設置value為空?
Egg + Vue SSR 組件非同步載入
webpack 進階
前端構建系統 Gulp 的使用與常用插件推薦 - 上篇

TAG:React | 前端开发 | 前端工程化 |