在上一篇我们讲过,将src打包到dist,使用如下的命令:
webpack ./src/main.js ./dist/bundle.js
但一般不会这样做,原因在于太长了,我们希望直接使用webpack来进行打包,这样就得在项目的根录下配置一个webpack.config.js文件,配置内容如下:
纠正:__dirname应该得到当前配置文件的所在目录的绝对路径
在终端使用命令: webpack,他会去读取entry 和 output的路径,来达到 webpack ./src/main.js ./dist/bundle.js这条命令的效果了。
但我还要说一下,并不是创建webpack.config.js,然后配置上面这些东西那么简单的,一般创建一个项目后,需要对该项目进行初始化,在终端使用命令:npm init,他的意思是将项目所有的依赖统一管理,然后会在该项目目录下创建一个package.json的一个文件,这个文件是用来管理项目的信息和依赖,就相当于maven的pom.xml;
有了package.json后,我们一般会在里面定义一些项目要用到的依赖,然后使用npm install来安装依赖,接着会生成一个node_modules的文件夹,里面则是全部的依赖。
到了这样,其实又要变更了,平时开发也不会单单使用 ‘webpack’这一条命令进行打包,还会连续使用多条命令对项目进行构建,但不可能每条都进行手敲吧,因此这些命令也会预先在package.json定义起来,如下:
到时候我们只要执行scirpts中的脚本即可,比如 npm run test 或 npm run build 就会执行脚本中的命令了;说到这里又会出现一个小问题了(真是想吐了),如果是在终端执行webpack相关的命令,他是优先从全局进行查找的,然后再本地项目,假设 全局安装的webpack是4.0版本,本地项目用到是3.0,那在终端使用的webpack命令则是4.0的;与此相反,在script脚本执行的webpack命令是先本地项目,后全局的;
这个会出现什么样的问题呢?假设你从github上面拖了一个项目下来,该项目使用的webpack是3.0版本的,但你全局是4.0版本,刚好在终端命令直接敲webpack命令,那就会使用webpack4.0来进行打包,这个过程可能存在很多的问题的,因此通常一个项目下载下来,需要安装他自己的webpack,即 npm install webpack@3.6.0 --save-dev;--save-dev表示webpack在开发时使用,webpack的依赖不会存在打包后的依赖中。