美文网首页
webpack + react 创建项目

webpack + react 创建项目

作者: Jaycaoln | 来源:发表于2017-11-01 22:30 被阅读0次


    一、前期准备

    创建新的文件夹:

    mkdir react-webpack-demo

    切换到react-webpack-demo文件夹下面,生成packge.json配置文件

    cd react-webpack-demo
    npm init

    在该目录下创建文件夹目录大致如下:

    其中,build用于存放webpack打包的文件,.babelrc是babel的配置文件,webpack.config.js是webpack的配置文件,之后都需要,这里先创建。

    二、下载插件

    安装webpack:

    npm i --save-dev webpack webpack-dev-server

    这里的webpack-dev-server是用来开启本地服务器的,后文会介绍具体配置方法。

    安装react,

    npm i --save-dev react react-dom

    安装babel-loader:因为现在项目基本都用到了es2015,所以我们需要下载将es6转换成浏览器可以识别的js:

    npm install --save-dev babel-loader babel-core babel-preset-env

    按照我们之前的步骤,默认都是安装最新的插件。

    但是如果你项目有特殊要求,webpack版本不一样,也需要下载对应的babel-loader版本,规则如下:

    webpack 1.x | babel-loader <= 6.x

    webpack 2.x | babel-loader >= 7.x (recommended) (^6.2.10 will also work, but with deprecation warnings)

    webpack 3.x | babel-loader >= 7.1

    同样需要转换react(jsx)的插件:

    npm install --save-dev babel-preset-react

    三、配置文件

    webpack.config.js 

    var path=require('path');  //node 自带的path
    module.exports={
        entry:path.resolve(__dirname,'app/index.jsx'),  //获取到当前文件夹下面的index.jsx为入口文件
        output:{
           path:path.resolve(__dirname,'build'),  //webpack打包输入路径
           filename:'bundle.js',                  //输入包的名字
        },
        modules {                                 //对webpack loader文件的规则约束
           rules: [{
               test: /\.js|jsx$/,           
               use:{
                   loader:'babel-loader'
               }
           }]
        }
    }

    这里说明一下,这里modules的文件配置,是为了让webpack利用babel-loader识别js和jsx文件,当然如果要识别css,png文件等只要在rules里面继续配置,具体的可以查看官方文档

    package.json,在script中定义快捷指令:

    "start":"webpack-dev-server --progress --color",
    "build":"webpack --config ./webpack.config.js --progress --color"

    .babelrc

    {
      "presets":[
         "env","react"
      ]
    }

    四、打包

    这个时候我们就可以打包了

    npm run build

    当出现这样的就说明你打包成功了,也可以在bundle文件夹下面看到bundle.js文件

    五、本地服务器运行网页

    为了做一个有点意思的网页,我们在之前创建的index.jsx文件中写入:

    import React from 'react';
    import {render} from 'react-dom';
    
    export default class App extends React.Component{
        render(){
            return(
               <div style={{height:'700px',width:'100%',backgroundColor:'pink'}}>
                   Great, u successed!
               </div>
            )
         }
    }
    
    render(
      <App />,
      document.getElementById('root')
    )

    index.html

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset=“utf-8”>
        <title>react-webpack-demo</title>
      </head>
      <body>
        <div id="root"></div>
      </body>
    </html>

    这里我们就需要用上webpack-dev-server开启服务器,这里需要引入html-webpack-loader:

    npm i --save-dev html-webpack-loader

    同时介绍一个打开浏览器的插件open-browser-webapck-plugin


    npm i --save-dev open-browser-webpack-plugin

    webpack.config.js现配置如下:

    var HtmlWebpackPlugin = require('html-webpack-plugin');
    var OpenBrowserWebpackPlugin = require('open-browser-webpack-plugin');
    
    module.exports={
      ......
      plugins:[
        new HtmlWebpackPlugin({
           template:__dirname+'/app/index.html',
        }),
        new OpenBrowserWebpackPlugin({
           url:'http://localhost:8080',
        })
      ]
    }
    
    

    现在,输入

    npm start

    就可以看到如下效果了:

    最后,别问我为啥用大粉因为好看!

    --------------------------------------------------------------------------------------------------

    --------------------------------------------分割线---------------------------------------------

    听说百度的人都加班到10点,那我起码也得10点01吧.............

    --------------------------------------------分割线---------------------------------------------

    --------------------------------------------------------------------------------------------------

    相关文章

      网友评论

          本文标题:webpack + react 创建项目

          本文链接:https://www.haomeiwen.com/subject/kcqohxtx.html