完全方案:超详细的webpack4配置(webpack3与webpack4的差异)

摘要:
webpack4发布已经有一段时间了。我听说webpack4的发布注意到了它的亮点:零配置。Webpack3与webpack4门户https://www.cnblogs.com/wyliunan/p/10238717.html想想看,公司背景似乎在使用springcloud和springBoot来帮助您配置大多数配置选项,从而减少手动配置的作用。阅读webpack4的技术文档,了解webpack4所做的更改。在中间过程中可能会报告错误。根据提示安装webpack-cli。以下是执行webpack w的结果:webpack 4对加载器和优化进行了许多更改。

webpack4的发布已经有一段时间了,听说webpack4的发布是注意到了他的亮点:实现零配置。webpack4制定了入口和出口的位置,但是实现页面应用和需要具体的功能的是时候还是避免不了进行配置一些选项。而且webpack的难点和精髓也在配置里面。webpack3对比webpack4传送门https://www.cnblogs.com/wyliunan/p/10238717.html

想一想公司后台好像在用spring cloud和spring Boot同样是帮你配置了大部分配置选项从而减少手动配置的作用。通读了一下webpack4的技术文档,来撸一撸webpack4有哪些变化。

  来看一下package.json

{
  "name": "webpack_demo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "webpack --mode development",
    "build": "webpack --mode production",
    "start": "webpack-dev-server --inline --hot"
  },
  "keywords": [
    ""
  ],
  "author": "kim",
  "license": "ISC",
  "devDependencies": {
    "babel-core": "^6.26.3",
    "babel-eslint": "^8.2.6",
    "babel-preset-es2015": "^6.24.1",
    "bable-loader": "0.0.1-security",
    "css-loader": "^1.0.0",
    "eslint": "^5.2.0",
    "eslint-config-airbnb": "^17.0.0",
    "eslint-config-standard": "^11.0.0",
    "eslint-loader": "^2.1.0",
    "eslint-plugin-html": "^4.0.5",
    "html-loader": "^0.5.5",
    "node-sass": "^4.9.2",
    "sass-loader": "^7.0.3",
    "style-loader": "^0.21.0",
    "webpack": "^4.16.2",
    "webpack-cli": "^3.1.0",
    "webpack-dev-server": "^3.1.5"
  },
  "dependencies": {
    "babel-loader": "^7.1.5",
    "jquery": "^3.3.1",
    "mustache": "^2.3.0"
  }
}

这是最终形态,几个重要的点有一下选项:main , scripts  , devDependencies , dependencies。

在package.json里面可以直观的看到项目所引用的不同状况的依赖(devDependencies,dependencies)和启动项目的命令(scripts)。

以下是在本地建了一个名叫webpack的文件夹,我们的demo放在里面

cd webpack

npm init                                                 初始化

npm install webpack --save-dev     安装webpack

webpack -w              webpack -watch的缩写,监听的时候顺便打包。中间过程可能会报错,根据提示安装webpack-cli

(webpack-cli)   

 

以下是执行webpack -w结果:

完全方案:超详细的webpack4配置(webpack3与webpack4的差异)第1张

webpack4在loader,optimize上进行了很多改动。

我们手动创建webpack.config.js文件,module.exports模块配置了入口,出口,插件,loader工具,优化等等:

npm install jquery --save

 

npm install bable-loader --save-dev

npm install babel-core babel-preset-es2015 --save-dev 

 

 

webpack配置需要注意的几点:

 

 完全方案:超详细的webpack4配置(webpack3与webpack4的差异)第2张

module.loaders改为module.rules

module.loaders.loader改成module.loaders.use

loader的”-loader”均不可省略

 

 完全方案:超详细的webpack4配置(webpack3与webpack4的差异)第3张

 

某些配置选项配置时候需要绝对路径

 

 

 

合并相同的插件

plugins : [new webpack.optimize.CommonsChunkPlugin({

name : 'main',

children : true,

minChunks : 2,

}),],

 

此段代码已经在webpack4的高版本里面被移除

换成了如下的配置选项:

optimization: {

        splitChunks: {

            cacheGroups: {

                commons: {

                    name: "commons",

                    chunks: "initial",

                    minChunks: 2

                }

            }

        }

    },

 

 

 

运行webpack-dev-server --inline --hot时报错“command not found

这时候需要全局安装webpack-dev-server: npm install webpack-dev-server -g

 

 

webpack的scripts选项:

"scripts": {

    "dev": "webpack --mode development",

    "build": "webpack --mode production"

  },

 

用npm run dev 和npm run build来实现。

 

代码还是要上手撸的,尽管现在的构建工具帮你做了大部分的工作,但是除了能够熟练应用之外,还应该能够深谙其中的原理,这样的话,不论它如何变化都不能够对你的代码造成断层性的阻断作用。webpack内部还是有很多的高级配置的因为项目并没有用到webpack,加之不适合,所以具体的实用的例子还得在以后自己做过demo或者参与项目构建之后才能够道清其使用的使用技巧。

免责声明:文章转载自《完全方案:超详细的webpack4配置(webpack3与webpack4的差异)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[转]Kindeditor图片粘贴上传(chrome)第十章 内部类1下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

u-boot中分区和内核MTD分区关系【转】

转自:https://www.cnblogs.com/lidabo/p/4774327.html 一、u-boot中环境变量与uImage中MTD的分区关系 分区只是内核的概念,就是说A~B地址放内核,C~D地址放文件系统,(也就是规定哪个地址区间放内核或者文件系统)等等。 一般我们只需要分3-4个区,第一个为boot区,一个为boot参数区(传递给内核的...

webpack 多应用项目搭建

前言: 多应用在实际的项目中使用场景也是比较多的,话不多说,直接进入搭建过程 项目搭建: 请参考之前的webpack项目搭建笔记,此处不再过度讲解,项目结构如下 app1.html 1 <!DOCTYPE html> 2 <html style="font-size:20px"> 3 <head> 4 <...

linux下如何模拟按键输入和模拟鼠标

http://blog.chinaunix.net/u3/94700/showart_2211516.html 查看/dev/input/eventX是什么类型的事件, cat /proc/bus/input/devices设备有着自己特殊的按键键码,我需要将一些标准的按键,比如0-9,X-Z等模拟成标准按键,比如KEY_0,KEY-Z等,所以需要用到按键...

Edge Extraction (subpixel Precise)

Basic Concept     Extended Concept     Extract Edges or Lines   HALCON offers various operators for the subpixel-accurate extraction of contours. The standard oper-ator is ba...

Edge Extraction 边缘提取

1. 一般过程 ******************************************** *   sobel_amp(Image : EdgeAmplitude : FilterType, Size : ) *   不能完全排除虚假边缘,检测出的结果容易出现多像素边缘 *   sobel算子由两个卷积核组成 *          ...

介绍Oracle自带的一些ASM维护工具 (kfod/kfed/amdu)

1.前言 ASM(AutomaticStorageManagement)是Oracle主推的一种面向Oracle的存储解决方式,它是一个管理卷组或者文件系统的软件。眼下已经被RAC环境广泛使用,可是ASM因为其高度的封装性,使得我们非常难知道窥探其内部的原理。ASM假设一旦出现故障,通常都非常难处理。 即便在有非常完备的RMAN备份的情况下,恢复起来都可...