webpack.base.conf.js文件的配置

一、引入模块文件

const path = require('path')
const utils = require('./utils')
const config = require('../config')
const vueLoaderConfig = require('./vue-loader.conf')
  • const utils = require(’./utils’)
    对vue-loader对于css预编译一些提取的工具模块,因为对于个人开发而言,在里面提供了,sass,less,stylus,possCss等一些列预编译解析的loader

  • const config = require(’…/config’)
    对开发环境和生产环境的一系列不同参数的,路径等配置

  • const vueLoaderConfig = require(’./vue-loader.conf’)
    基础生产环境和开发环境对vue-loader进行的配置

二、封装函数

封装函数,进行传参,获取绝对路径,方便对import时引入地址的填写

function resolve (dir) {  
return path.join(__dirname, '..', dir)
}

三、打包入口函数

entry: {
    app: './src/main.js'
  },

四、打包的出口函数

 output: {    
 path: config.build.assetsRoot,    
 filename: '[name].js',    
 publicPath: process.env.NODE_ENV === 'production'      ? config.build.assetsPublicPath      : config.dev.assetsPublicPath  
 }
  • path:打包目录
  • filename:打包名称
  • publicPath:静态文件访问的路径,根据静态文件的loader进行拼接配置,当进行环境是生产环境的话,我们就用config文件中的config.build.assetsPublicPath这个属性,如果不是生产环境,则用config.dev.assetsPulicPath
resolve: {    
extensions: ['.js', '.vue', '.json'],    
alias: {      
'vue$': 'vue/dist/vue.esm.js',      
'@': resolve('src'),    
}  
},

五、relove库

relove是用来对模块进行解析,就是所谓的Libary第三方库

  • extensions:是对模块的后缀进行解析,当我们引入自己写的模块的时候,没有带js后缀,那文件会不会识别,本质上不会识别,但是有了这个配置,会先对.js后缀进行匹配,没有再匹配.vue,没有在匹配.json,还是没有找到的话,则会报错
  • alias:配置别名,如果你在一个很深的文件引入其他文件中有一个很深的文件,我们就用@来代替src

六、module模块

对解析文件的参数配置

 module: {    
 rules: [      
 ...(config.dev.useEslint ? [createLintingRule()] : []),      
 {        
 test: /\.vue$/,        
 loader: 'vue-loader',        
 options: vueLoaderConfig      
 },      
 {
 test: /\.js$/,        
 loader: 'babel-loader',        
 include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]      
 },      
 {        
 test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,        
 loader: 'url-loader',        
 options: {          
 limit: 10000,          
 name: utils.assetsPath('img/[name].[hash:7].[ext]')        
 }      
 },      
 {        
 test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,        
 loader: 'url-loader',        
 options: {          
 limit: 10000,          
 name: utils.assetsPath('media/[name].[hash:7].[ext]')        
 }      
 },      
 {        
 test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,        
 loader: 'url-loader',        
 options: {          
 limit: 10000,          
 name: utils.assetsPath('fonts/[name].[hash:7].[ext]')        
 }      
 },      
 {
 test: /\.less$/,        
 loader: "style-loader!css-loader!less-loader"
}    
]  
}
  • test:用来解析所有后缀为*的文件
  • loader:用什么Npm的形式的loader去解析
  • include:代表我们解析的文件只包含那些东西
  • options:是对解析文件参数配置,对于url-loader来说limit1000代表当小时1000kb的文件我们则可以砖面base64,name对输出的内容进行地址转换
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值