什么叫webpack:

webpack 是一个模块打包工具,起初它只能打包js文件,发展到现在可以打包任何文件。

// ES module 导入一个模块
import Header from './header.js'
// 导出一个模块
export default function header(){}

之前,在一个js文件中 引入别的js文件,是无法执行的,浏览器无法识别!此时webpack登场了,webpack它可以识别模块导入的方式 ,它可以帮浏览器做一个翻译:

安装webpack

1、进入项目目录,初始化: npm init (前提需安装node) ,一路回车,

此时,项目文件夹中会多出一个 package.json 文件 ,它是一个默认的项目配置文件。

2、安装webpack及webpack-cli 脚手架,这块说下,最好把webpack和webpack-cli安装在项目中,避免安装在全局,原因如果有一个项目是webpack3.xxx的配置,另一个项目是webpack4.xxx的配置,此时你全局安装webpack,其中一个项目webpack配置就会有问题,而安装在项目中就不会存在此问题!

npm install webpack webpack-cli --save-dev === npm install webpack webpack-cli -D

3、安装完成后,输出webpack -v,结果发现未找到,原因是node它会全局去寻找webpack的安装目录,不必然会找不到,因为我们是在项目中安装的webpack。我们可以通过npx来查找webpack,npx:它会在当前项目的node_modeules中去寻找webpack,所以通过npx webpack -v 即可查看webpack的版本号了。

让webpack帮助我们翻译代码(打包模块),npx  webpack xxx.js  用webpack去翻译后边的.js文件,翻译成功后,它会放到dist文件夹下的main.js中去。

此时,项目文件夹下会多出一个dist文件夹,在html中引入dist文件夹下的main.js(被翻译(打包)过的文件) , 打开网页,即可显示出内容!

// html.html
<script src="./dist/main.js"></script>

// web.js
import Header from './header.js'
import Footer from './footer.js'
Header()
Footer()

// header.js
function header(){console.log('this is a header')}
export default header

// footer.js
function footer(){console.log('this is a footer')}
export default footer

webpack - 一 ( webpack介绍 )_html

webpack - 一 ( webpack介绍 )_html_02

webpack - 一 ( webpack介绍 )_版本号_03

webpack - 一 ( webpack介绍 )_html_04

在浏览器中,打印结果:

webpack - 一 ( webpack介绍 )_html_05

 补充:

--save-dev 与--save区别

--save-dev 会把安装的包和版本号记录到package.json中的devDependencies对象中,打包工具或者测试工具用到的包使用--save-dev,存到devDependencies,比如:webpack、eslint;

--save 会把安装的包和版本号记录到dependencies,在浏览器中执行的js用到的包,会存到dependencies,比如JQuery等等。

用处

通常一个项目,传到github上去,一般会在 .gitignore 中指定忽略node_modules目录和里边的文件,这样从github上拉下来的项目,需要运行npm install 来安装node_modules , 而项目所依赖的包会通过package.json 中的dependencies和devDependencies对象中所记录的包的相应版本下载下来。