使用Yarn+Webpack+Babel6搭建React.js环境

使用Yarn+Webpack+Babel6搭建React.js环境

Facebook开源的React.js已经改变了世人对前端UI的思考方式。这种基于组件方式的优势之一,就是使View更加的简单,因为React.js的View就是一个关于props和state的js function。同时,React.js是前端的模块化开发,更加简单和快捷,这也是极大诱惑。
React.js的学习曲线,相对于其他的前端框架,还是先对平缓的,特别对于来自桌面的开发者。但围绕React.js的工具(Babel、Webpack、Yarn)和库还是有不少挑战。
事实上,这些工具对于React.js开发来说不是必须的,但为了最大程度利用ES6和JSX的特性,他们还是十分有必要的。因此,这里会使用这些工具一步一步的搭建React的开发环境。
这些仅仅是我学习React.js的一个记录。

开始

这里会使用Yarn,一个Facebook开源的Js包管理器,借鉴和改进了npm,并且和npm是兼容的。这里非常乐意推荐大家去尝试和使用Yarn。
新建一个新的Project

mkdir helloworld
cd helloworld
yarn init

使用默认的配置

安装和配置webpack

Webpack是当下最为火热的前端资源模块化管理和打包工具。它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源。还可以将按需加载的模块进行代码分隔,等到实际需要的时候再异步加载。通过 loader 的转换,任何形式的资源都可以视作模块,比如 CommonJs 模块、 AMD 模块、 ES6 模块、CSS、图片、 JSON、Coffeescript、 LESS 等。
使用Yarn安装webpack

yarn add webpack

新建一个webpack的配置文件:webpack.config.js

touch webpack.config.js

并使用一下内容更新webpack.config.js

var webpack = require('webpack')
    //import webpack from 'webpack'

module.exports = {
    devtool: 'eval',
    entry: [
        './index.js'
    ],
    output: {
        path: __dirname,
        filename: 'bundle.js'
    }
}

新建一个index.js文件

document.write("Hello world react")

新建一个index.html文件

<html>
  <head>
    <meta charset="utf-8">
    <title>React.js using NPM, Babel6 and Webpack</title>
  </head>
  <body>
    <div id="app" />
    <script src="bundle.js" type="text/javascript"></script>
  </body>
</html>

编译index.js并打包到bundle.js

$ yarn run webpack index.js bundle.js

打包过程显示日志:

Hash: 8b231dfafb36fcecaafd
Version: webpack 2.13.3
Time: 86ms
    Asset     Size  Chunks             Chunk Names
bundle.js  1.42 kB       0  [emitted]  main
   [0] ./index.js 28 bytes {0} [built]
Done in 0.67s.

在浏览器中打开index.html

添加loader

使用hot loader热替换

添加Chrome React.js调试插件

未完待续

posted @   墨梅  阅读(7836)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示