Vue教程58--webpack的配置

101 阅读2分钟

webpack的配置

入口和出口

  • 我们考虑一下,如果每次使用webpack的命令都需要写上入口和出口作为参数,就非常麻烦,有没有一种方法可以将这两个参数写到配置中,在运行时,直接读取呢?

  • 当然可以,就是创建一个webpack.config.js文件

     const path = require("path")
     ​
     module.exports = {
       entry:"./src/main.js",
       output:{
         path:path.resolve(__dirname,"dist"),
         filename:'commen.js'
       }
     }
    

局部安装webpack

  • 目前,我们使用的webpack是全局的webpack,如果我们想使用局部来打包呢?

    • 因为一个项目往往依赖特定的webpack版本,全局的版本可能很这个项目的webpack版本不一致,导出打包出现问题
    • 所以通常一个项目,都有自己局部的webpack
  • 第一步,项目中需要安装自己局部的webpack

    • 这里我们让局部安装webpack3.6.0
    • Vue CLI3中已经升级到webpack4,但是它将配置文件隐藏了起来,所以查看起来不是很方便
     # 在项目目录下执行
     npm install webpack@3.6.0 --save-dev
    
  • 第二步,通过node_modules/.bin/webpack启动webpack打包

     # 在命令行中执行的是全局的webpack
     webpack
     # 执行局部的webpack,在项目的目录中
     node_modules/.bin/webpack
    

package.json 中定义启动

  • 但是,每次执行都敲这么一长串有没有觉得不方便呢?

    • OK,我们可以在package.json的scripts中定义自己的执行脚本。
  • package.json中的scripts的脚本在执行时,会按照一定的顺序寻找命令对应的位置。

    • 首先,会寻找本地的node_modules/.bin路径中对应的命令。
    • 如果没有找到,会去全局的环境变量中寻找。
    • 如何执行我们的build指令呢?
     npm run build
    

项目实战

入口和出口配置文件 webpack.config.js

 # 正确的版本
 const path = require("path")
 ​
 module.exports = {
   entry:"./src/main.js",
   output:{
     path:path.resolve(__dirname,"dist"),
     filename:'commen.js'
   }
 }

但我们使用path是相对路径的时候:会报错

当我们的配置文件的名称不叫webpack.config.js的时候,我们使用webpack后面要跟上我们的webpack的配置文件

 webpack production.config.js

使用npm init 进行初始化项目

会生成package.json

使用npm install 进行package.json的依赖的安装

当我们的package.json中存在一些依赖的时候,我们使用npm install 完成对于依赖的安装

存在webpack.config.js时,执行webpack

建立npm run的映射关系

  • npm run build --->webpack 写在package.json中的scripts中,我们优先会在本地的包中进行寻找,没有的话会在全局的包中进行寻找

局部安装webpack