webpack简介
构建工具(基于Nodejs)node(v16)前端工程化。
环境搭建
创建一个空的package.json
npm init
webpack核心包(提供了API,插件)
npm i webpack -g
npm i webpack -D cnpm i webpack -g
cnpm i webpack -D
webpack命令行包(提供了很多命令)
npm i webpack-cli -g
npm i webpack-cli -D cnpm i webpack-cli -g
cnpm i webpack-cli -D
官方推荐的用于构建本地服务器的包
npm i webpack-dev-server -g
npm i webpack-dev-server -D cnpm i webpack-dev-server -g
cnpm i webpack-dev-server -D
判断webpack是否安装成功
webpack -v
 
 
webpack是基于NodeJs环境的,webpack工作
    • 官方推荐使用的配置文件:webpack.config.js
    • 在项目根目录创建src/main.js入口文件
 
 webpack.config.js配置文件
//从Node中引入path模块,path.resolve()/join()
const file = require('path)
 const HtmlWebpackPlugin = require('html-webpack-plugin')
 const { ProgressPlugin} = require('webpack')


module.exports{
//指定webpack工作模式(两种模式:开发模式(development),打包模式(production))
  mode:'development',
  //入口配置
  //entry:'./src/main.js'  //相对路径
  //entry:path,resolve(__dirname,'src/main.js')  //绝对路径
  entry:{
    app:file.resolve(__dirname,'src/main.js')
  },
  //出口配置
  output:{
    //指定打包结果的输出目录,默认是dist目录,只能使用绝对路径
    path:path.resolve(__dirname,'dist'),
    filename:'[name].[chunkhash:8].js'
    //每次打包时,
    clean:true
  },
  //本地服务配置
    devServer:{
        port:8088,  
        open:true   //项目启动成功,自动打开浏览器
    }

  plugins:[
    new HtmlWebpackPlugin({
      template:file.resolve(__dirname,'../','public/index.html'),
      //把js脚本注入在body前
      inject:'body',
      //指定打包成功后模板的名字
      filename:'index.html',
      //指定index.html的标题
      title:'沐沐',
      //指定图标路径
      favicon:file.resolve(__dirname,'../','public/index.html'),
    }),
      new ProgressPlugin({
        handler(percentage,message,...args){
          if(percentage == 1){
            console.log('100% 启动成功')
          }
        }
     }),
  ],
  module:{
    //定义模块编译规则和方法
    rules:[
      //当webpack工作时,遇到.js结尾的文件时,就使用babel-loader进行加载,交给@babel/*进行编译。得到es5代码。
      {test:/\.js$/,use:'babel-loader'}
    ]
  }
}

 注意:因为webpack有两种工作模式,为了让配置更加容易维护,所以我们分离环境。
 在 webpack --env 指定环境,在配置文件 module.exports = function(env) 接收环境变量。
对 webpack配置进行拆分(公共配置、开发环境配置、打包配置),再使用 webpack-merge合并配置
 
const { merge } = require('webpack-merge')

const config = require('./config/config')    //公共配置
const serve = require('./config/serve') //开发环境配置
const build = require('./config/build')  //打包配置 module.exports = function ( {development} ) {
return merge(config, development ? serve : build)
}
在webpack中,如何处理.js模块?
安装babel-loader,在公共配置中配置module
npm i babel-loader -D
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

react环境搭建及文件配置的更多相关文章

  1. webpack+babel+ES6+react环境搭建

    webpack+babel+ES6+react环境搭建 步骤: 1 创建项目结构 注意: 先创建一个项目目录  react  这个名字自定义,然后进入到这个目录下面 mkdir app //创建app ...

  2. React 环境搭建及页面调试方法

    React 环境搭建及页面调试方法 |作者:RexFang |出处:http://www.cnblogs.com/rexfang/ |关于作者:Java 程序员一枚 |版权:本文版权归作者和博客园共有 ...

  3. 关于路由器漏洞利用,qemu环境搭建,网络配置的总结

    FAT 搭建的坑 1 先按照官方步骤进行,完成后进行如下步骤 2 修改 move /firmadyne into /firmware-analysis-toolkit navigate to the ...

  4. 20201205-3 HTML环境搭建与文件基本结构

      HTML环境搭建与文件基本结构   HTML的基础 HTML环境搭建 Pycharm 包含全部环境  编写(代码) →  运行浏览器 → 代码检查 Sublime  只是用来编写 HTML 代码: ...

  5. 最小白的webpack+react环境搭建

    本文也同步发表在我的公众号“我的天空” 从零开始,用最少的配置.最少的代码.最少的依赖来搭建一个最简单的webpack+react环境. 最近在玩webpack+react+移动端,那么第一步自然是搭 ...

  6. 从零开始react实战:云书签-1 react环境搭建

    总览篇:react 实战之云书签 本篇是实战系列的第一篇,主要是搭建 react 开发环境,在create-react-app的基础上加上如下功能: antd 组件库按需引入 ,支持主题定制 支持 l ...

  7. hadoop集群环境搭建之安装配置hadoop集群

    在安装hadoop集群之前,需要先进行zookeeper的安装,请参照hadoop集群环境搭建之zookeeper集群的安装部署 1 将hadoop安装包解压到 /itcast/  (如果没有这个目录 ...

  8. hadoop学习第一天-hadoop初步环境搭建&伪分布式计算配置(详细)

    一.虚拟机环境搭建 我们用的虚拟机为vmware,Linux镜像为centOS6.5. vmware安装 安装没什么多说的,一路下一步,但是在新建虚拟机的时候有两个地方需要注意: 1.分配处理器1个就 ...

  9. PHP LAMP环境搭建及网站配置流程(完整版)

    心血来潮想做一个自己的博客网站,写一些文章做技术分享,平时遇到的一些问题的解决办法都记录下来,网站搭建成功,那么第一篇博客自然就是整个网站的搭建以及域名的注册.备案.解析流程,总共分为以下几步: 1. ...

随机推荐

  1. Cocos---监听、触摸事件、坐标系转换

    监听.触摸事件.坐标系转换 Creator的系统事件 分为"节点系统事件"和"全局系统事件". 节点系统事件:触发在节点上,包括鼠标事件和触摸事件. 全局系统事 ...

  2. MongoDB 分片规则

    每日一句 生命本身毫无意义,只有死亡才能让你邃晓人性的真谛! 每日一句 Ideal is the beacon. Without ideal, there is no secure direction ...

  3. ES6 - promise(1)

    今天决定对之前学过的一些前端的知识进行梳理和总结,因为最近都是独自承担项目的开发与搭建,所以先从前后端交互的第一线axios来梳理,复习axios首先一定要先复习promise对象. 什么是promi ...

  4. 用STM32玩SR04(测距、串口显示、OLED显示)

    目录 用STM32玩SR04(测距.串口显示.OLED显示) 超声波模块使用 SR04初始化 SR04使用串口打印数据 SR04使用OLED来传输数据,并显示在OLED上 用STM32玩SR04(测距 ...

  5. JAVA - 如果hashMap的key是一个自定义的类,怎么办?

    JAVA - 如果hashMap的key是一个自定义的类,怎么办? 使用HashMap,如果key是自定义的类,就必须重写hashcode()和equals().

  6. Linux下删除Mysql

    1.检查mysql服务并关闭相应的进程 [root@bp18425116f0cojd1vnz ~]# ps -ef |grep mysql root 1492 1 0 10:23 ? 00:00:00 ...

  7. Java绘图基础

    <零基础学Java> Java绘图基础 绘图是高级程序设计中非常重要的技术,例如,应用程序需要绘制闪屏图像.背景图像.组件外观Web程序可以绘制统计图.数据库存储的图像资源等. Graph ...

  8. Swoole一键操作基于阿里云的RDS数据库迁移+OSS文件搬迁

    传统的数据库搬迁思路是把数据库表的结构及数据都查询出来,然后通过循环进行数据结构重组拼接.然后导出!数据量少的话,这样当然是没毛病.当数据量太大的时候,服务器的内存开销就吃不住了,很容易炸掉,导致服务 ...

  9. 【Redis】skiplist跳跃表

    有序集合Sorted Set zadd zadd用于向集合中添加元素并且可以设置分值,比如添加三门编程语言,分值分别为1.2.3: 127.0.0.1:6379> zadd language 1 ...

  10. 论文解读(USIB)《Towards Explanation for Unsupervised Graph-Level Representation Learning》

    论文信息 论文标题:Towards Explanation for Unsupervised Graph-Level Representation Learning论文作者:Qinghua Zheng ...