webpack4 来啦!

1,148 阅读4分钟

安装webpack4

  依赖

npm install --save  上线开发都需要。

npm i -D 是 npm install --save-dev 的简写,是指安装模块并保存到 package.json 的 devDependencies中,主要在开发环境中的依赖包。

 安装webpack

为了开发中保证每个开发人员的webpack版本号一样,最好是安装到当前项目下。(不要全局安装 npm i webpack -g)

webpack一般开发中使用,上线的时候不需要,webpack4中除了正常安装webpack之外,需要再单独安一个webpack-cli (npm i webpack webpack-cli -D)

1、cd xxx 进入当前项目,npm init -y 初始化,生成package.json(建议node版本安装到8.2以上)

2、npm i webpack webpack-cli -D  安装webpack

webpack4可以0配置

webpack4可以0配置,但是一般不会这么用,因为不够智能。

0配置有要求,首先要有默认文件夹src,src下要有默认入口文件index.js,可以找到src下的index.js进行默认打包,会默认支持commonjs规范,es6模块规范,cmd,amd,打包后  代码可以直接跑在浏览器端

1、建立src文件夹,src文件夹下建立index.js,index.js输入内容

2、npx webpack  打包自动生成main.js

node v8.5版本以后会有一个npx,npx + 文件名  可以直接去node_modules下bin文件里找到要执行的文件,如果这个文件不存在的话,会帮你安装

npx webpack // 不设置mode的情况下 打包出来的文件会自动压缩(默认是生产模式)

npx webpack --mode development // 设置mode为开发模式,打包后的文件不被压缩

3、index.js   引用a.js  (默认就支持node的写法  自动转化;默认支持各种模块化) 

再次  npx webpack --mode development  打包,打包成功后找到index.html  浏览器打开显示   hello  就能看到打包成功啦。

0配置自动打包的main.js  index.js名字是默认规定好了的,不能改名,不然报错,这个时候需要到当前项目根目录下建立一个webpack.config.js(默认情况下就叫webpack.config.js  可修改)。

webpack是基于node的 用的语法commonjs规范

下面就进入我们的常规操作环节

在项目下创建一个webpack.config.js(默认,可修改)文件来配置webpack

以上就是webpack的正常配置模块

按照项目的结构,我们就从0开始去写一下配置吧

打包前文件目录

写配置(最简单的webpack配置)

npx webpack  打包

打包后文件目录 

配置执行文件

工作当中我们打包编译的时候一般不会执行npx webpack这样的命令,都是执行npm run dev这样的命令,既然是通过npm执行的命令,我们就应该找到package.json里的执行脚本去配置一下命令。

**npm run build**就是我们打包后的文件,这是生产环境下,上线需要的文件

npm run dev是我们开发环境下打包的文件,当然由于devServer帮我们把文件放到内存中了,所以并不会输出打包后的dist文件夹

通过npm run build之后会生成一个dist目录文件夹,就和上面打包后的样子一样了

多入口文件

多个入口   是没有关系的   但是要打包到一起去 ,entry入口文件可以写一个数组,实现多个文件打包成一个文件

a.js     index.js   没有关系

entry入口文件数组配置

npm run bulid  打包

打包成功  生成bundle.js

将html中js链接改成  bundle.js  浏览器打开效果

插件的用法

实际项目中,我们应该通过一个模板实现打包出引用好路径的html来,而不是我们在在dist目录下去自己去创建一个html文件,然后去引用打包后的js。

这就需要安装一个常用的插件了,html-webpack-plugin

去掉dist自建的index.html   通过src文件下的index.html模板来打包

npm install html-webpack-plugin -D 安装插件

所有安装的插件,都需要在webpack.config.js里引用并在plugins里配置。

以上会自动把打包后的bundle.js引到index.html里,然后打包到dist目录下

npm run build 打包

dist  下生成打包后的index.html

浏览器下显示

项目上线需要压缩代码,增加配置

npm run build  打包

打包后的index.html

解决缓存问题

npm run build 打包

由于每次打包,会产生不必要的文件,这时候我们需要清空文件插件  clean-webpack-plugin

npm install clean-webpack-plugin -D 安装插件

webpack.config.js里引用并在plugins里配置。

npm run  build  打包

打包后  多余文件删除

打包后引用静态资源的路径可以加上域名

npm run bulid 打包 

遇到的bug:单词写错报错。(无效的配置对象。 Webpack已经使用配置进行初始化 与API模式不匹配的对象。 - configuration.module应该是一个对象。 - >影响正常模块的选项(NormalModuleFactory)。)