zoukankan      html  css  js  c++  java
  • 学习webpack,从0搭建react项目

    从0搭建react项目

    最近学习了webpack的基础知识,想要不通过脚手架就能自己搭好react项目,通过之前的学习,今天自己来动手实践一下,顺便复习一遍之前学习的知识,为后续的学习打好基础。

    这里记录的是我今天的成果,可能webpack写的比较粗糙。

    webpack.config.js

    const path=require('path'); //使用__dirname变量,获取当前文件的绝对路径,避免在不同操作系统之间的路径问题
    const HtmlWebpackPlugin = require('html-webpack-plugin');//使webpack自动按照模板将Html文件添加进打包目录中
    const {CleanWebpackPlugin}=require('clean-webpack-plugin');
    
    
    
    module.exports={
        mode:'development',//现在为开发环境
        entry:'./src/index.js',
        devtool:'cheap-module-eval-source-map',
        devServer:{
            contentBase:'./build',
            open:true,
            port:8080
        },
        module: {
            rules: [
                { test: /.js$/, 
                    exclude: /node_modules/,//不会去翻译node_modules中的文件
                    loader: "babel-loader" ,
                    options:{
                        "presets":[["@babel/preset-env",{
                            useBuiltIns:'usage'//按需加入es6新特性
                        }],
                        "@babel/preset-react"
                        ]
                    }
                },{
                    test:/.less$/,
                    use:[
                        {
                            loader:"style-loader"
                        }, {
                            loader: "css-loader" // translates CSS into CommonJS
                        }, {
                            loader: "less-loader" // compiles Less to CSS
                        }
                    ]
                },{
                    test:/.jpg$/,
                    use:{
                        loader:'url-loader',
                        options:{
                            name:'[name].[ext]',
                            outputPath:'images/',
                            limit:20480
                        }
                    }
                }
            ]
          },
        plugins: [new HtmlWebpackPlugin({
    		template:'public/index.html'//html模板
    	}),new CleanWebpackPlugin()],//打包前,帮助将dist内的文件清除掉
        output:{
            path:path.resolve(__dirname,"build"),//打包文件导出
            filename:'[name].[hash].bundle.js',//文件名
        }
    }
    

    package.json

    {
      "name": "mybolg",
      "version": "1.0.0",
      "description": "zhangmiao's blog",
      "private": true,
      "scripts": {
        "start": "webpack-dev-server"
      },
      "keywords": [],
      "author": "zhangmiao",
      "license": "ISC",
      "devDependencies": {
        "@babel/core": "^7.9.6",
        "@babel/preset-env": "^7.9.6",
        "@babel/preset-react": "^7.9.4",
        "babel-loader": "^8.1.0",
        "clean-webpack-plugin": "^3.0.0",
        "css-loader": "^3.5.3",
        "file-loader": "^6.0.0",
        "html-webpack-plugin": "^4.3.0",
        "less": "^3.11.1",
        "less-loader": "^6.1.0",
        "style-loader": "^1.2.1",
        "url-loader": "^4.1.0",
        "webpack": "^4.43.0",
        "webpack-cli": "^3.3.11",
        "webpack-dev-server": "^3.11.0"
      },
      "dependencies": {
        "@babel/polyfill": "^7.8.7",
        "react": "^16.13.1",
        "react-dom": "^16.13.1"
      }
    }
    
    

  • 相关阅读:
    springboot + mybatis + 多数据源
    Git 常见问题汇总
    Git 常见问题汇总
    sqlserver存储过程实现多表分页
    bzoj5248(洛谷4363)(2018九省联考)一双木棋
    bzoj4033 [HAOI2015]树上染色
    bzoj3195 [Jxoi2012]奇怪的道路
    bzoj1426(洛谷4550)收集邮票
    bzoj4806 炮
    bzoj1090(SCOI2003)字符串折叠
  • 原文地址:https://www.cnblogs.com/ellen-mylife/p/12890067.html
Copyright © 2011-2022 走看看