在开始写webpack.base.conf.js(简称base)之前,我们先来看一下vue-loader.conf.js这个文件,毕竟在base中我们还会用到:

'use strict'

//引入前一篇文章的utils文件
const utils = require('./utils')
//引入config文件
const config = require('../config')
//判断当前是否为生产环境,如果是则返回true
const isProduction = process.env.NODE_ENV === 'production'
//是否使用sourceMap,如果是生产环境就使用config文件中index.js中生产环境的配置,否则是否开发环境的配置
const sourceMapEnabled = isProduction
? config.build.productionSourceMap
: config.dev.cssSourceMap module.exports = {
//utils文件cssLoaders返回的配置项,返回的格式为
/*
loaders:{
css:ExtractTextPlugin.extract({
use: [cssLoader],
fallback: 'vue-style-loader'
}),
postCss:{
.......
}
}
*/
loaders: utils.cssLoaders({
sourceMap: sourceMapEnabled,
extract: isProduction
}), //是否使用sourceMap
cssSourceMap: sourceMapEnabled, //是否使用cacheBusting,这个配置在config的文章中提到过
cacheBusting: config.dev.cacheBusting,

接下来,我们来看webpack.base.conf.js文件

const path = require('path')
const utils = require('./utils')
const config = require('../config')
const vueLoaderConfig = require('./vue-loader.conf') //resolve函数返回根路径下的文件或文件夹
function resolve (dir) {
return path.join(__dirname, '..', dir)
} module.exports = {
//返回根路径
context: path.resolve(__dirname, '../'),
//设置入口文件
entry: {
app: './src/main.js'
},
//出口文件
output: {
//根据config模块得知是根目录下的dist文件夹
path: config.build.assetsRoot,
filename: '[name].js',
//公共路径,统一为“/”
publicPath: process.env.NODE_ENV === 'production'
? config.build.assetsPublicPath
: config.dev.assetsPublicPath
},
resolve: {
//自动解析的扩展,js,vue,json这三种格式的文件引用时不需要加上扩展了
// import File from '../path/to/file'
extensions: ['.js', '.vue', '.json'],
alias: {
//精准匹配,使用vue来替代vue/dist/vue.esm.js路径
'vue$': 'vue/dist/vue.esm.js',
//使用@替代src路径,当你引入src下的文件是可以使用import xx from "@/XX.js"
'@': resolve('src'),
}
},
module: {
rules: [
//vue-loader,module里的配置可以查看webpack文档
{
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]')
}
}
]
},

手撕vue-cli配置——webpack.base.conf.js篇的更多相关文章

  1. 手撕vue-cli配置——webpack.prod.conf.js篇

    'use strict' const path = require('path') const utils = require('./utils') const webpack = require(' ...

  2. 手撕vue-cli配置——webpack.dev.conf.js篇

    const utils = require('./utils') const webpack = require('webpack') const config = require('../confi ...

  3. vue-cli脚手架npm相关文件解读(1)webpack.base.conf.js

    系列文章传送门: 1.build/webpack.base.conf.js 2.build/webpack.prod.conf.js 3.build/webpack.dev.conf.js 4.bui ...

  4. vue-cli 2.x脚手架build目录中的webpack.base.conf.js配置文件

    此文章用来解释vue-cli脚手架build目录中的webpack.base.conf.js配置文件,适用于vue-cli 2.x版本 此配置文件是vue开发环境的wepack相关配置文件,主要用来处 ...

  5. vue-cli脚手架之webpack.base.conf.js

    webpack相关的重要配置文件将在这一节给出.webpack水很深啊^o^,在此先弄清楚原配文件内容的含义,后续可以自己根据实际情况配置. webpack.base.conf.js:配置vue开发环 ...

  6. vue-cli脚手架build目录中的webpack.base.conf.js配置文件

    转载自:http://www.cnblogs.com/ye-hcj/p/7082620.html webpack.base.conf.js配置文件// 引入nodejs路径模块 var path = ...

  7. vue-cli下面的config/index.js注解 webpack.base.conf.js注解

    config/indexjs详解上代码: 'use strict' // Template version: 1.3.1 // see http://vuejs-templates.github.io ...

  8. vue -- 脚手架之webpack.dev.conf.js

    webpack.dev.conf.js  开发环境模式配置文件: 'use strict'//js按照严格模式执行 const utils = require('./utils')//导入utils. ...

  9. vue - webpack.base.conf.js

    描述:webapck基本配置文件. 为了给开发文件和打包文件(webpack.dev.conf.js|| webpack.prod.conf.js) 提供方便. 'use strict' // 路径 ...

随机推荐

  1. linux 系统信息查看

    查看系统版本:lsb_release -a 查看内核版本:uname -a 查看cpu型号:cat /proc/cpuinfo 查看硬盘空间情况df -lm 查看内存:free -m  VGA显卡:l ...

  2. 代码使用了php的包管理器composer,include到你的php脚本

    使用数据库进行crontab配置管理,除非你能够保证数据库的请求能够在长时间内保持稳定响应的话.推荐使用nosql类型的cache存储,同时做好持久化备份. 测试代码: define('DS', DI ...

  3. 数据库和struts2的拦截器

    1.READ UNCOMMITTED:脏读.不可重复读.虚读都有可能发生2.READ COMMITTED:防止脏读的发生,不可重复读,虚读都有可能发生3.REPEATABLE READ:防止脏读,不可 ...

  4. POJ_2019_Cornfields

    Cornfields Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 7444   Accepted: 3609 Descri ...

  5. Oracle管理监控之设置linux启动时自动启动oracle服务器

    1. 修改dbstart脚本(第78行):$ vi $ORACLE_HOME/bin/dbstartORACLE_HOME_LISTNER=$ORACLE_HOME 2. 修改/etc/oratab为 ...

  6. SQL中的四种语言DDL,DML,DCL,TCL

    1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema ...

  7. Mybatis 代码自动生成[myeclipse版]

    使用环境说明: OS:windows 7 64位 myeclipse: 2017 CI 1.安装 打开myeclipse--help---Install from catalog--选择eclipse ...

  8. windows底下怎么让cmder通过输入subl去打开sublime text

    在window自身的cmd或者你安装的cmder中输入 doskey subl="D:\Program Files\sublime3\Sublime Text 3\sublime_text. ...

  9. jquery实现选项卡(两句即可实现)

    <!DOCTYPE HTML><html> <head>        <meta charset="utf-8">         ...

  10. SRM 619

    easy:  假设每堆石头不全为1,那么每次我们总能取一堆石头分给另外两堆,堆数-1.而且新的局面肯定有一堆的个数大于1. 于是,假设每堆石头数都为1 -> lose.否则的话推断堆数奇偶就可以 ...