一、解决什么问题

     1、开发环境js、css不压缩,可在浏览器选中代码调试

     2、开发环境运行http服务指向打包后的文件夹

     3、babel输出浏览器兼容的js代码

二、需要安装的包

   babel-loader:输出浏览器兼容的js代码;命令: npm install --save-dev babel-loader @babel/core @babel/preset-env

   webpack-dev-server: 快速搭建本地运行环境;命令: npm install webpack-dev-server --save-dev

三、babe-loader配置

  1、在webpack.config.js文件中新增rule,代码如下:

  {
test: /\.m?js$/,
exclude: /(node_modules|bower_components)/,//不包含node_modules、bower_components
                 use: {
loader: 'babel-loader',
}
},

  2、在根目录下新增babel配置文件.babelrc,代码如下:

 {
"presets": ["@babel/env"]
}

四、开发环配置

  1、根目录下新建webpack.dev.conf.js文件,代码如下,代码中有注释,可根据下面的代码自己调试:

 const path = require("path");
const merge = require("webpack-merge");
const webpackConfigBase = require("./webpack.config.js"); const webpackConfigDev = {
devServer: {
contentBase: path.join(__dirname, 'dist'),
// publicPath: '/',
// host: 'local.pcteam.com.cn',
// host: '0.0.0.0' || 'config.dev.host', //手机联测使用
port: '8000',
overlay: true, // 浏览器页面上显示错误
open: true, // 开启浏览器
// stats: "errors-only", //stats: "errors-only"表示只打印错误:
// hot: true, // 开启热更新
// inline: true,
//服务器代理配置项
disableHostCheck: true,
proxy: {
'/api': {
target: 'http://test.pcteam.com.cn',
changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
secure: false,
// pathRewrite: {
// '^/files': ''
// }
//修改服务端返回的cookie路径
// cookiePathRewrite: {
// '///': '///',
// },
//修改服务端返回的cookie domain
// cookieDomainRewrite: {
// 'unchanged.domain': 'unchanged.domain',
// 'pcteam.com': 'local.pcteam.com:8000',
// '*': '',
// },
},
},
},
plugins: [
//热更新 hot: true 需要同时配置
// new webpack.HotModuleReplacementPlugin(),
],
// 生成map格式的文件,里面包含映射关系的代码,如果想查看在源文件中错误的位置,则需要使用映射关系,找到对应的位置。
devtool: 'source-map',
} //合并基础配置和dev配置
module.exports = merge(webpackConfigBase, webpackConfigDev)

五、开发环配置

    在package.json中找到scripts,进行环境区分和配置:

    //正式打包发布
    "build":"cross-env webpack --mode=production",  
    //开发环境运行命令
    "dev": "cross-env webpack-dev-server --mode=development --config webpack.dev.conf.js"
    
    --mode指定当前运行的环境,如果是production环境webpack4.x会对js、css压缩,如果是development则不压缩,更多区别请查看文档https://webpack.js.org/configuration/mode/
            --config指定使用哪个配置文件运行
            cross-env 为了兼容windows环境,需要npm i --save-dev cross-env安装

六、测试

  1、运行npm run dev会在默认浏览器打开页面,如下图:

  

  2、修改js或css会自动刷新页面

源码地址:https://github.com/James-14/webpack4_multi_page_demo

写的不对之处请大家批评指正~~~~!!!!!!

文章原创,转载请注明出处,谢谢!

基于webpack实现多html页面开发框架五 开发环境配置 babel配置的更多相关文章

  1. 基于webpack实现多html页面开发框架一 准备工作

    本系列主要介绍如何基于webpack实现多html页面开发框架,这里不讲webpack的基本概念,废话不多说,直奔主题! 前置条件: 1.安装node环境,自己去官网下载安装 2.新建文件夹webpa ...

  2. 基于webpack实现多html页面开发框架二 css打包、支持scss、文件分离

    本节主要介绍webpack打包的时候CSS的处理方式 一.解决什么问题      1.CSS打包      2.CSS处理浏览器兼容      3.SASS支持      4.CSS分离成单独的文件 ...

  3. 基于webpack实现多html页面开发框架六 提取公共代码

    一.解决什么问题 1.如果a.js和b.js都引用了common.js,那在打包的时候common.js会被重复打入到a.js和b.js,造成重复打包 2.单独打包common.js对性能有帮助,浏览 ...

  4. 基于webpack实现多html页面开发框架三 图片等文件路径替换、并输出到打包目录

    一.解决什么问题      1.图片路径替换.并输出到打包目录      2.输出目录清理 二.需要安装的包 file-loader:html.css中图片路径替换,图片输出到打包目录:命令:npm ...

  5. 基于webpack实现多html页面开发框架八 html引入图片打包和公共页面模块复用

    一.解决什么问题 1.html中img引入的图片地址没有被替换,找不到图片 2.html公共部分复用问题,如头部.底部.浮动层等 二.html中img引入图片问题解决 1.在index.html插入i ...

  6. 基于webpack实现多html页面开发框架四 自动写入多入口,自动插入多个htmlWebpackPlugin插件

    一.解决什么问题      1.手写页面多入口,一个一个输入太麻烦,通过代码实现      2.手写多个htmlWebpackPlugin插件太麻烦,通过代码实现 二.多入口代码实现 //读取所有.j ...

  7. 基于webpack实现多html页面开发框架七 引入第三方库如jquery

    一.解决什么问题 1.如何引入第三方库,如jquery等 二.引入jquery方法 1.下载jquery.min.js放到assets/lib下面 2.安装copy-webpack-plugin,将已 ...

  8. Webpack笔记(二)——搭建React开发环境

    前几天一直在学习webpack,总算比之前学习的时候有了点收获,所以在昨天发布了一篇webpack入门笔记,今天继续使用webpack练了练手,搭建了一个React开发环境,如果还不熟悉的童鞋可以看一 ...

  9. 基于Qt Designer和PyQt5的桌面软件开发--环境搭建和入门例子

      本文介绍了如何使用技术栈PyCharm+Qt Designer+PyQt5来开发桌面软件,从环境搭建.例子演示到对容易混淆概念的解释.文中用到的全部软件+代码下载链接为:https://url39 ...

随机推荐

  1. Java基础系列4:抽象类与接口的前世今生

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 1.抽象类: 当编写 ...

  2. m76 赛后总结

    这次没有炸的太厉害,只是T3崩了,而且..... 这次的心态并没有因为loj的大吉而崩,反而在经受过上一轮的打击之后变得坚强了,心态也平了,没什么可挂念的,因为我什么都没有,所以发扬光脚的不怕穿鞋的精 ...

  3. 羞,Java 字符串拼接竟然有这么多姿势

    二哥,我今年大二,看你分享的<阿里巴巴 Java 开发手册>上有一段内容说:"循环体内,拼接字符串最好使用 StringBuilder 的 append 方法,而不是 + 号操作 ...

  4. it公司比较

    1:本人西电通院2013届毕业硕士,根据今年找工作的情况以及身边同学的汇总,总结各大公司的待遇如下,吐血奉献给各位学弟学妹,公司比较全,你想去的公司不在这里面,基本上是无名小公司了:但无名小公司有时也 ...

  5. 易初大数据 2019年10月24日 spss笔记 王庆超

    数据文件的重置结构:横向结构(个案组),纵向结构,不符合分析方法的时候就需要重组,选定变量重组为个案,数据—重构,重构数据向导,选定变量重组为个案,将选定个案重构位变量,转置所有数据,变量组数目,一个 ...

  6. Resource Path Location Type Target runtime Apache Tomcat v6.0 is not defined(项目报错)已解决

    我换了开发工具后,导入的项目不是这里报错就是那里不错.不过,我喜欢.在tomcat里面部署项目后,定位到报错行时,总是提示我这句话:Description Resource Path Location ...

  7. 雅虎日本如何用 Pulsar 构建日均千亿的消息平台

    雅虎日本是一家雅虎和软银合资的日本互联网公司,是日本最受欢迎的门户网站之一.雅虎日本的互联网服务在日本市场占主导地位. 下图从三个维度显示了雅虎日本的经营规模.第一个是服务数量,雅虎日本提供上百种互联 ...

  8. Proxy动态代理-增强方法

    增强对象的功能 设计模式:一些通用的解决固定问题的方式 装饰器模式 代理模式 概念: 在代理模式(Proxy Pattern)中,一个类代表另一个类的功能.这种类型的设计模式属于结构型模式. 在代理模 ...

  9. 设计模式(Java语言)-单例模式

    单例模式,简而言之就是在整个应用程序里面有且仅有一个实例,在程序的任何时候,任何地方获取到的该对象都是同一个对象.单例模式解决了一个全局的类被频繁创建和销毁的,或者每次创建或销毁都需要消耗大量cpu资 ...

  10. T-SQL Part VIII: CROSS APPLY, OUTER APPLY

    除了CROSS JOIN, INNER JOIN, OUTER JOIN之外,T-SQL还提供了CROSS APPLY和OUTER APPLY这两个较为另类的Set操作符. 首先来看CROSS APP ...