美文网首页
使用webpack4 搭建react v16脚手架实录

使用webpack4 搭建react v16脚手架实录

作者: JohnYuCN | 来源:发表于2020-06-19 15:23 被阅读0次

    项目地址:https://github.com/johnyu666/webpack-react-scaffold.git

    1. 项目目录结构:

    demo2 $ tree -L 2
    .
    ├── dist
    │   ├── bundle.js
    │   └── index.html
    ├── package-lock.json
    ├── package.json
    ├── src
    │   ├── component
    │   └── index.js
    └── webpack.config.js
    
    3 directories, 6 files
    

    2. package.json

    {
      "name": "demo2",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "webpack-dev-server --open"
      },
      "author": "",
      "license": "ISC",
      "dependencies": {
        "react": "^16.13.1",
        "react-dom": "^16.13.1"
      },
      "devDependencies": {
        "@babel/core": "^7.10.2",
        "@babel/preset-env": "^7.10.2",
        "@babel/preset-react": "^7.10.1",
        "babel-loader": "^8.1.0",
        "webpack": "^4.43.0",
        "webpack-cli": "^3.3.12",
        "webpack-dev-server": "^3.11.0"
      }
    }
    
    

    3. webpack.config.js

    const path = require('path');
    
    module.exports = {
        mode: 'production',
        entry: './src/index.js',
        output: {
            filename: 'bundle.js',
            path: path.resolve(__dirname, 'dist')
        },
        devServer:{
            contentBase: './dist'
        },
        module: {
            rules:
                [
                    {
                        test: /\.js$/, exclude: /(node_modules|bower_components)/,
                        use: {
                            loader: 'babel-loader', options: { presets: ['@babel/preset-env','@babel/preset-react'] }
                        }
                    }
                ]
        }
    };
    

    4. src/index.js

    import React from 'react'
    import ReactDom from 'react-dom'
    import App from './component/App'
    class Index extends React.Component{
        render(){
            return <App/>
        }
    }
    ReactDom.render(<Index/>,document.getElementById('app'))
    
    

    5. src/component/App.js

    import React from 'react'   
    export default class App extends React.Component{
        render(){
            return (
                <div>
                    <h1>Hello App!</h1>
                </div>
            )
        }
    }
    

    6. dist/index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        
    </head>
    <body>
        <div id="app"></div>
        <script src="./bundle.js"></script>
    </body>
    </html>
    

    7. 运行:

    npm start
    

    相关文章

      网友评论

          本文标题:使用webpack4 搭建react v16脚手架实录

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