使用 Dawn 构建 React 项目

开发一个 React 项目,通常避免不了要去配置 Webpackbabel 之类,以支持 commonjses 模块及各种 es 新语法,及及进行 jsx 语法的转义。当然也可以用 create-react-appp 脚手架快速创建一个 react 项目,但与此同时 create-react-app 常常又显的不太自由。

在配置 webpack 时,看着上百行的 webpack.config.js 是不是很闹心?为了重用是不是在多个项目间各种 ctrl-c -> ctrl-v,整个配置起来还是稍显麻烦,对于新手用户常常更是一头雾水,事实上,最大化重用和简化构建配置也是 dawn 的目标之一。

本文是一篇 Dawn 使用入门文章,介绍如何从「零」开始「手动配置」一个基于 dawnreact 工程。

一、环境准备(可略过)

# 1. 安装 NVM
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash

# 2. 安装 Node
nvm install 8.6.0
nvm alias default 8.6.0

# 3. 安装 Dawn
npm i dawn -g

二、创建项目 & 编写代码

创建一个普通的 Node 项目

# 1. 创建项目目录
mkdir react-demo
cd react-demo

# 2. 初始化 package
npm init

安装 react & react-dom

npm i react react-dom --save-dev

用你的编辑器,打开项目根目录,比如 vscode

vscode .

在项目根目录创建 src 目录,并在 src 目录中创建 index.js,并输入如下代码

import React from 'react';
import ReactDOM from 'react-dom';

function App() {
  return <div>
    Hello Dawn!
  </div>;
}

ReactDOM.render(
  <App />, document.getElementById('root')
);

src/assets 目录,并在 src/assets 目录中创建 index.html,并输入如下代码

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Hello Dawn!</title>
</head>

<body>
  <div id="root"></div>
</body>

</html>

三、添加构建配置

在项目根目录创建 .dawn 目录,并在 .dawn 目录中输入如下配置

build:
  - name: clean
  - name: webpack

好了,现在构建一下我们的代码吧,执行如下命令

dn build

命令执行完毕,会看到项目根目录多了一个 build 这便是构建结果,简单到想哭吧。

如上配置,在 buildpipeline 中添加了 cleanwebpack 两个中间件,在每次执行 dn build 时,pipeline 中的 clean 会清理 build 目录,然后 webpack 会接着进行构建,并把构构建结果放入 build 目录。

等一下,想要监听文件的「实时构建」?想要一个用于开发的 「Dev Server」?想要浏览器「自动同步」?

看下边,配置一下 devpipeline,在刚刚的 pipe.yml 中加入 dev 配置

build:
  - name: clean
  - name: webpack

dev:
  - name: clean
  - name: webpack
    watch: true
  - name: server
  - name: browser-sync

devpipeline 中,我们把 webpackwatch 选项打开了,打开后便能监听文件的变化并进行「实时构建」了,接下来的任务交给 server 中间件,它会在构建启动后启动一个静态的 Web Server,默认情况下会自动选择一个「可用端口」,不出意外「浏览器」已经「自动打开」了。

编辑一代码试试,browser-sync 中间件会通知浏览器实时自动刷新页面,在适配不同设备开发时 browser-sync 还会在多个的设备的浏览器中同步。

好了,一个基本的基于 dawn 的 react 工程配置好了。文中提到的 webpackcleanserverbrowser-sync,可以关注一下相关文档。



附上一些链接:

时间: 2024-08-31 03:29:17

使用 Dawn 构建 React 项目的相关文章

利用React-router+Webpack快速构建react程序_javascript技巧

本文主要介绍的是使用React-router和Webpack如何快速构建一个react程序,下面话不多说,感兴趣的可以一起学习学习. 初始化项目 我们先创建个空文件夹,然后初始化 package.json ,填写一些基本信息. $ npm init 接下来我们开始安装依赖项,我的 package.json 的依赖项如下 "devDependencies": { "babel": "^5.5.6", "babel-core":

[译] 为多个品牌和应用构建 React 组件

本文讲的是[译] 为多个品牌和应用构建 React 组件, 原文地址:Building React Components for Multiple Brands and Applications 原文作者:Alex Grigoryan 译文出自:掘金翻译计划 译者:XatMassacrE 校对者:Tina92.reid3290 为多个品牌和应用构建 React 组件 沃尔玛大家庭由多个不同的品牌组成,其中包括 Sam's Club, Asda,和例如 Walmart Canada 之类的地区分支

Facebook 新开源项目使创建 React 项目变得容易

Facebook的 React 项目是一个开源库,它允许开发人员快速构建应用程序以及在JavaScript中构建它们的用户界面.但是,这有点过于轻描淡写了,因为除了JavaScript,你还必须学习很多的工具,才能简单地创建一个React项目. 尽管Facebook一直在谈论关于React的工具,但大多数个人开发者和初创企业都没有像Facebook公司拥有的资源.为了帮助这些React的用户学习和使用运行React,该公司推出了"Create React App",这是一个诞生于黑客马

qt-CMake 构建Qt项目,出现无法找到合适的Qt版本

问题描述 CMake 构建Qt项目,出现无法找到合适的Qt版本 途中错误如何解决,求大神给出解决方案!尽量详细些,初学CMake.谢谢了! 解决方案 你去QT官网下载对应的版本,它都自带Cmake等

maven 构建web项目时war名称由什么决定

使用maven 构建web项目时,war包的名称由什么决定呢? 默认的war名称是构件ID加上版本号,例如: shop_goods-0.0.1-SNAPSHOT.war或exam4-0.0.1-SNAPSHOT.war  有哪些方式可以指定war包的名称呢? 方式一: 使用插件maven-war-plugin,pom配置如下:  Xml代码   <plugin>                   <groupId>org.apache.maven.plugins</grou

java android开发-在解决构建路径错误之前不能构建该项目

问题描述 在解决构建路径错误之前不能构建该项目 JAVA初学者,目前正参考<第一行代码>学习中. 在创建HelloWorld应用的时候出现了如下所示报错,项目图标有感叹号出现. 如图示错误为在解决构建路径错误之前不能构建该项目开发-在解决构建路径错误之前不能构建该项目-构建android开发环境"> 下图是SDK manager的内容 我没有下载sample的extra.此外最下面的extra有一个broken source package不知道该如何修复.不知道上面问的构建路

maven-Maven构建SSH项目添加依赖支持报错

问题描述 Maven构建SSH项目添加依赖支持报错 我在使用Maven搭建SS2H项目的时候,使用了 org.springframeworkspring-web4.1.3.RELEASE 之后web.xml的 org.springframework.web.context.ContextLoaderListener 就会报错,是找不到,去掉了就可以但是在项目启动的时候就会报错,加了之后会有报错说Error:java: java.lang.ArrayIndexOutOfBoundsExceptio

maven构建-求助:Maven构建java项目时出错

问题描述 求助:Maven构建java项目时出错 这个项目以前是用Ant构建的,现在转用Maven了.报错如下:An Ant BuildException has occured: You must not specify nested elements when using refid. 构建过程如下: 这个项目的pom.xml文件如下: <project> <modelVersion>4.0.0</modelVersion> <groupId>aopme

求助,在jenkins中进行构建maven项目时,提示报错

问题描述 下面这张图是我运行构建时提示报错信息下面这张图是我在构建maven项目时的配置,请参考下面这张图是我项目的pom.xml文件 解决方案