zoukankan      html  css  js  c++  java
  • 使用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调试插件

    未完待续

  • 相关阅读:
    session概述
    Flask实现登录功能【附完整Demo】(转)
    Python __repr__()方法:显示属性(转)
    Python使用SQLAlchemy连接数据库CRUD
    网络基础知识集合
    面向切面编程AOP
    SQL基础 insert table_name_1 (field1,field2,...) select value1,value2,... from table_name_2 ...
    java中char类型的变量为什么可以赋值为整型数字?
    iOS应用生命周期
    视图生命周期与视图控制器生命周期
  • 原文地址:https://www.cnblogs.com/xiwang/p/6048950.html
Copyright © 2011-2022 走看看