记录一下前端开发中webpack的传统开发环境配置

一、文件结构

二、webpack.config.js

const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: './src/js/index.js',
output: {
filename: 'js/built.js',
path: resolve(__dirname, 'build')
},
module: {
rules: [
{
test: /\.less$/,
use: ['style-loader', 'css-loader', 'less-loader']
},
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
},
{
test: /\.(jpg|png|gif)$/,
loader: 'url-loader',
options: {
// 小于8kb会采用base64编码格式存储图片
// 减少了请求数量,减轻服务器压力
limit: 8 * 1024,
// 给图片进行重命名
// [hash:10]取图片的hash的前10位
// [ext]取文件原来扩展名
name: '[hash:10].[ext]',
// 问题:因为url-loader默认使用es6模块化解析,而html-loader引入图片是commonjs
// 解析时会出问题:[object Module]
// 解决:关闭url-loader的es6模块化,使用commonjs解析
esModule: false,
outputPath: 'imgs'
}
},
{
// 处理html文件的img图片(负责引入img,从而能被url-loader进行处理)
test: /\.html$/,
loader: 'html-loader'
},
{
// 处理其他资源
exclude: /\.(html|js|css|less|jpg|png|gif)/,
loader: 'file-loader',
options: {
name: '[hash:10].[ext]',
outputPath: 'media'
}
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: './src/index.html'
})
],
mode: 'development',
devServer: {
/*
这里注意DevServer通过HTTP服务暴露出的文件分为两类:
暴露本地文件。
暴露Webpack构建出的结果,由于构建出的结果交给了DevServer,所以你在使用了DevServer时在本地找不到构建出的文件。
contentBase只能用来配置暴露本地文件的规则,可以通过contentBase:false来关闭暴露本地文件。
*/
contentBase: resolve(__dirname, 'build'),
compress: true, // 采用gzip压缩
port: 3000,
open: true // 启动后默认开启浏览器
}
};

三、运行指令

// npx是npm5.2之后发布的一个命令,执行流程如下:

// 1. 去node_modules/.bin路径检查npx后的命令是否存在,找到之后执行;

// 2. 找不到,就去环境变量$PATH里面,检查npx后的命令是否存在,找到之后执行;

// 3. 还是找不到,自动下载一个临时的依赖包最新版本在一个临时目录,然后再运行命令,运行完之后删除,不污染全局环境。

// 比如 npx create-react-app my-react-app,npx 将create-react-app下载到一个临时目录,使用以后再删除。

// 每次运行这个命令,都会重新下载依赖包,运行后删除。

npx webpack-dev-server

前端开发--webpack--开发环境配置的更多相关文章

  1. webpack根据开发与生产环境配置不同变量--webpack.DefinePlugin

    webpack有一个DefinePlugin接口,可以实现根据开发与生产环境配置不同变量.范例如下: 需求:开发环境请求baseUrl = '':生产环境请求 baseUrl = 'http://lo ...

  2. 详解LUA开发工具及其环境配置

    LUA开发工具及其环境配置是本文要介绍的内容,主要是来了解并学习lua开发工具的使用和环境的配置,第一次接触LUA的话,就跟本人一起学习吧.看我能不能忽悠到你. LUA是语言,那么一定有编写的工具.第 ...

  3. Windows下OpenFOAM开发及使用环境配置指南 (2)【转载】

    转载自:http://openfoam.blog.sohu.com/158751915.html *************************************************** ...

  4. Windows下OpenFOAM开发及使用环境配置指南 (1)【转载】

    转载自:http://openfoam.blog.sohu.com/158614863.html *************************************************** ...

  5. webpack开发与生产环境配置

    前言 作者去年就开始使用webpack, 最早的接触就来自于vue-cli.那个时候工作重点主要也是 vue 的使用,对webpack的配置是知之甚少,期间有问题也是询问大牛 @吕大豹.顺便说一句,对 ...

  6. 如何用Python做Web开发?——Django环境配置

    用Python做Web开发,Django框架是个非常好的起点.如何从零开始,配置好Django开发环境呢?本文带你一步步无痛上手.     概念 最近有个词儿很流行,叫做“全栈”(full stack ...

  7. Android 开发基础及环境配置

    2011年买了第一部安卓操作系统的手机,当时势头正盛的HTC不可思议(incredible),当时的想法就是想学习下智能手机开发,但是由于各种原因,客观上是公司的项目太忙了,忙于项目管理.团队建设.客 ...

  8. 使用ionic与cordova(phonegap)进行轻量级app开发前的环境配置与打包安卓apk过程记录

     前言 有人说:"如果你恨一个人,就让ta去接触cordova(phonegap)",这是因为这里面的水很深,坑很多,真让人不是一般地发狂.或许有幸运的人儿基本顺顺利利就配置完环境 ...

  9. VC6.0 +WDK 开发驱动的环境配置

    前段时间,系统偶感风寒,挂掉了,苦于又没有备份过,只有重装了.原来开发驱动的环境是VC6+DDK+DriverStudio3.2,当时配置的时候就花了好一阵功夫,也没有彻底搞清楚.现在要重装了,决定改 ...

  10. [android开发篇]java环境配置

    http://www.runoob.com/java/java-environment-setup.html Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境. window ...

随机推荐

  1. 再见,Windows 7/8/8.1

    https://www.electronjs.org/zh/blog/windows-7-to-8-1-deprecation-notice 各个版本的electron: https://www.el ...

  2. C#面向切面编程之AspectCore用法详解

    AspectCore 是Lemon名下的一个国产Aop框架,提供了一个全新的轻量级和模块化的Aop解决方案,下面我们就来深入了解下AspectCore在C#中的具体使用吧   − 目录 写在前面 代码 ...

  3. Javascript版Langchain入门

    https://baijiahao.baidu.com/s?id=1769509377621631060&wfr=spider&for=pc 介绍 LangChain是一个开源Pyth ...

  4. 对 Chrome/V8 堆内存限制的研究

    https://zhuanlan.zhihu.com/p/567115829 开局直接放结论,具体的验证过程比较无聊,有兴趣的可以翻到后面细看. 堆内存的限制是由 V8 来设置的. 早期的时候,V8对 ...

  5. 信而泰测试平台支持丰富的EVPN场景测试,助力5G应用规模化发展

    什么是EVPN? EVPN(Ethernet Virtual Private Network)是下一代全业务承载的VPN解决方案.EVPN统一了各种VPN业务的控制面,利用BGP扩展协议来传递二层或三 ...

  6. 2025 代码托管之争:Gitee vs. GitLab 深度对比与选型攻略

    Gitee崛起:中国开发者生态的"新基建" 在全球数字化转型浪潮中,代码托管平台已成为软件开发的基础设施.作为中国本土领先的代码托管平台,Gitee正在重新定义中国开发者的工作方式 ...

  7. 天梯赛 L2-018 多项式A除以B

    题目 这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数. 输入格式: 输入分两行,每行给出一个非零多项式,先给出A,再给出B. ...

  8. 用vue写一个日历插件

    先上图,看看效果 项目git地址 思路: 实现获取当前时间,新建一个data let now = new Date(); 然后需要判断显示的是否为当月时间 if (cur) { date = new ...

  9. 全差分放大器(FDA)电路设计计算及电压范围估算方法[原创www.cnblogs.com/helesheng]

    一.全差分放大器(FDA)的基本原理 从信号中去除或者向信号中加入共模信号需要用到减法器电路,如下图所示.这是个教科书上的电路,它对两个输入端上的电压做减法后,乘以增益G后,叠加到参考电压(图中Ref ...

  10. 关于处理大批量数据下载和查询时,怎么进行限流和熔断处理(AI)

    在处理大批量数据下载和查询时,限流和熔断是保障系统稳定性的关键手段.它们分别从"控制流量输入"和"阻断故障传播"两个维度保护系统,避免因过载或依赖服务异常导致整 ...