'use strict'
//引入node path 中间件 可以获取到 path 路径的一些信息
const path = require('path')
//引入utils工具模块 utils主要用来处理css-loader和vue-style-loader的
const utils = require('./utils')
//引入config下面的index文件 主要是配置一些开发环境和生产环境的配置
const config = require('../config')
//用来解决各种css 文件 sass less stulys 等
const vueLoaderConfig = require('./vue-loader.conf')
// 定义了一个路径函数 返回当前的目录的平行目录下的dir因为有'..'也就是获取绝对路径,方便对import时引入地址的方便填写
function resolve(dir) {
return path.join(__dirname, '..', dir)
}
//eslint 的检测规则
const createLintingRule = () => ({
//对js和vue 文件进行eslint 检查
test: /\.(js|vue)$/,
//使用eslint-loader
loader: 'eslint-loader',
//enforce执行的意思 有两个值 pre post
//pre是在其他规则执行之前执行 post是在其他规则执行之后执行
enforce: 'pre',
//进行检测的文件目录包括哪些 调用了路径函数,
include: [resolve('src'), resolve('test')],
options: {
//使用第三方的插件进行eslint 检测
formatter: require('eslint-friendly-formatter'),
//是否输出eslint报错信息
emitWarning: !config.dev.showEslintErrorsInOverlay
}
})
//webpack的配置,可以理解成是开发环境和正式环境的一些公共配置
module.exports = {
//webpack 解析时根目录地址如果此文件在跟目录这句话就不用写
context: path.resolve(__dirname, '../'),
//项目的入口文件
entry: {
app: './src/main.js'
},
//项目出口文件配置
output: {
//项目buid的出口文件的目录地址,这里指的是(../dist文件目录) 引入的是config.build 下面的配置
path: config.build.assetsRoot,
//文件的名字
filename: '[name].js',
//输出解析文件的目录,url 相对于 HTML 页面(生成的html文件中,css和js等静态文件的url前缀)
publicPath: process.env.NODE_ENV === 'production' ?
config.build.assetsPublicPath : config.dev.assetsPublicPath
},
resolve: {
//指定哪些文件在引用时可以省略后缀名
extensions: ['.js', '.vue', '.json'],
//别名,在引用文件时 使用别名代理真实目录 后面再在目录时以别名代替
alias: {
'@': resolve('src'),
'common': resolve('src/common'),
'components': resolve('src/components')
}
},
module: {
//转换解析规则
//1.test是用来解析所有此后缀名的文件,
//2.loader我们用什么npm什么形式的loader去解析
//3.include是代表我们解析的文件只包含那些东西
//4.options解析文件参数设置 具体看下面的解释
rules: [
...(config.dev.useEslint ? [createLintingRule()] : []),
{
test: /\.vue$/,
loader: 'vue-loader',
//对vue的css进行解析
options: vueLoaderConfig
},
{
//对js文件使用babel-loader进行解析 主要是解析es6
test: /\.js$/,
loader: 'babel-loader',
include: [resolve('src'), resolve('test')]
},
{
//对图片使用url-loader解析 这个插件的作用是将一个足够小的文件生成一个64位的DataURL
//当limit小于10000进行将图片生成base64
//name 指的是引入的utils里面的一个方法 将name ,7位哈希 .ext 代表后缀名
//传入方法 返回结果是 /static/img/[name].[hash:7].[ext]
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]')
}
}
]
},
node: {
// 是否 polyfill 或 mock
// prevent webpack from injecting useless setImmediate polyfill because Vue
// 源包含它(虽然仅在本地使用)
setImmediate: false,
// 预防webpack从注入模拟节点到node原生模块
// that does not make sense for the client 这对客户端没有影响
dgram: 'empty',
fs: 'empty',
net: 'empty',
tls: 'empty',
child_process: 'empty'
}
}

  

vue --- 脚手架初始化项目中配置文件webpack.base.conf.js代码含义的更多相关文章

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

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

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

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

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

    此文章用来解释vue-cli脚手架build目录中的webpack.dev.conf.js配置文件 此配置文件是vue开发环境的wepack相关配置文件 关于注释 当涉及到较复杂的解释我将通过标识的方 ...

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

    // 下面是引入nodejs的路径模块 var path = require('path') // 下面是utils工具配置文件,主要用来处理css类文件的loader var utils = req ...

  5. 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 ...

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

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

  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-cli配置——webpack.base.conf.js篇

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

  9. php课程 1-3 web项目中php、html、js代码的执行顺序是怎样的(详解)

    php课程 1-3 web项目中php.html.js代码的执行顺序是怎样的(详解) 一.总结 一句话总结:b/s结构 总是先执行服务器端的先.js是客户端脚本 ,是最后执行的.所以肯定是php先执行 ...

随机推荐

  1. Linux 程序包管理-RPM

    程序简介:  POSIX(Portable Openratin System)跨平台系统:不同操作系统平台的标准C库(glibc)都是遵循POSIX规范的,这样基于标准库开发程序的源代码可以夸平台编译 ...

  2. C#调用带结构体指针的C Dll的方法

    在C#中调用C(C++)类的DLL的时候,有时候C的接口函数包含很多参数,而且有的时候这些参数有可能是个结构体,而且有可能是结构体指针,那么在C#到底该如何安全的调用这样的DLL接口函数呢?本文将详细 ...

  3. 【BZOJ 1083】 [SCOI2005]繁忙的都市

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 很明显的最小生成树了. 输出最后选的那条边就好了. [代码] #include <bits/stdc++.h> usin ...

  4. 部署OGG时字符集转换问题--oracle to oracle已验证,其他异构环境应当也适用

    之前在安装OGG总是遇到字符集问题,尤其是多源端对一个目标端时,源端字符集不同,导致出现字符集问题 无法同步数据,查阅了大量的园子资料,都说要设置复制或抽取进程中SETENV (NLS_LANG=AM ...

  5. Qt之QToolButton

    简述 QToolButton类提供了用于命令或选项可以快速访问的按钮,通常可以用在QToolBar里面. 工具按钮和普通的命令按钮不同,通常不显示文本,而显示图标. 简述 详细描述 常用接口 更多参考 ...

  6. 2015年开源项目荣登GitHub十强榜单

    翻译出自:51CTO.com 开源是一个好东西,2015最振奋人心的就是swift开源. <软件开发时代>杂志(SD Times)回想了GitHub上的一些流行项目,这些项目已给开放和自由 ...

  7. 移植u-boot-2014.4到S5PV210/TQ210(完整)

    本文很多其它的是教会大家怎样学习 1.1   概述 1.2   u-boot配置过程分析 1.3   u-boot编译过程分析 1.4   SPL 1.5   加入自己的单板 1.6   移植u-bo ...

  8. Swift学习笔记(二)——常量与变量

    这篇博客将会学习到Swift中的常量Constants和变量Variable.这是学习语言的基础.当中能够看到Swift每句后面基本都是没有:分号的,假设有加:分号的习惯,也能够加上. (1)常量声明 ...

  9. pyspark.mllib.feature module

    Feature Extraction Feature Extraction converts vague features in the raw data into concrete numbers ...

  10. Struts2 | struts.xml文件中使用method属性和通配符简化action标签和Action处理类的编写

    转自:https://www.jianshu.com/p/310e89ee762d 在Struts2框架中,我们知道基本的Action标签只能实现一个url请求对应一个Action处理类.那么我们如果 ...