vue-cli脚手架之webpack.base.conf.js
webpack相关的重要配置文件将在这一节给出。webpack水很深啊^o^,在此先弄清楚原配文件内容的含义,后续可以自己根据实际情况配置。
webpack.base.conf.js:配置vue开发环境的webpack配置,处理各种文件(js啊、css啊、html啊...)
'use strict'//js严格模式执行
const path = require('path')//引入node.js路径模块
const utils = require('./utils')//引入utils工具模块,主要处理css-loader和vue-style-loader
const config = require('../config')//引入config文件夹下的index.js文件
const vueLoaderConfig = require('./vue-loader.conf')//引入vue-loader工具模块 function resolve (dir) {//返回当前目录的平行目录的路径
return path.join(__dirname, '..', dir)
} module.exports = {
context: path.resolve(__dirname, '../'),
entry: {//输入
app: './src/main.js'//入口文件为main.js
},
output: {//输出
path: config.build.assetsRoot,//打包后文件输出路径,看看自己的index.js中build配置中的assetsRoot是啥目录
filename: '[name].js',//输出文件名称默认使用原名
publicPath: process.env.NODE_ENV === 'production'//真正的文件引用路径,请看自己的index.js中build配置中写的啥
? config.build.assetsPublicPath
: config.dev.assetsPublicPath
},
resolve: {//决定要做的事情
extensions: ['.js', '.vue', '.json'],//省略扩展名,也就是说当使用.js .vue .json文件导入可以省略后缀名
alias: {
'vue$': 'vue/dist/vue.esm.js',//$符号指精确匹配,路径和文件名要详细
'@': resolve('src'),//resolve('src‘)//resolve('src')指的是项目根目录中的src文件夹目录,导入文件的时候路径可以这样简写 import somejs from "@/some.js"就可以导入指定文件
}
},
//用来解析不同模块
module: {
rules: [
{
test: /\.vue$/,//正则表达式,表示当前loader能检测.vue类型的文件(分析这个正则:/标记正则表达式的开始和结束,指的是在开始和结尾处哦,否则要使用/就得转义\/;\.表示.,此处的\将.标记为原意字符;$是正则表达式的结束?这个我不知道...)
loader: 'vue-loader',//对vue文件使用vue-loader,该loader是vue单文件组件的实现核心,解析.vue文件
options: vueLoaderConfig//将vueLoaderConfig当做参数传递给vue-loader,解析css相关文件
},
{
test: /\.js$/,
loader: 'babel-loader',//对js文件使用babel-loader转码,该插件用来解析es6等代码
include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]//指明src文件夹 test文件夹 client文件夹下的js文件要使用该loader
},
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,//这些格式结尾的图片文件
loader: 'url-loader',//图片文件使用url-loader插件,将图片转为base64格式字符串
options: {
limit: 10000,//10000个字节以下的文件才用来转为dataUrl
name: utils.assetsPath('img/[name].[hash:7].[ext]')//超过10000字节的图片,就按照制定规则设置生成的图片名称,可以看到用了7位hash码来标记,.ext文件是一种索引式文件系统
}
},
{
test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,//音频 视频类文件
loader: 'url-loader',//也是用url-loader
options: {
limit: 10000,//10000个字节以下的文件才进行转换
name: utils.assetsPath('media/[name].[hash:7].[ext]')//这个name到底是给谁起的啊喂,给超过limit字节限制的文件起的
}
},
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,//处理字体相关
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
}
},
/*添加sass开始*/
{
test:/\.(woff2?|eot|ttf|otf)(\?.*)?$/,//这个可以在vue组件中用sass scss等...
loaders:['style','css','sass'],
}
/*添加sass结束*/
]
},
node: {//一个对象,每个属性都是node.js全局变量或模块的名称,value为empty表示提供空对象
// prevent webpack from injecting useless setImmediate polyfill because Vue
// source contains it (although only uses it if it's native).
setImmediate: false,//false表示什么都不提供,话说参数setImmediate表示异步递归???需要查阅node文档了
// prevent webpack from injecting mocks to Node native modules
// that does not make sense for the client
dgram: 'empty',
fs: 'empty',
net: 'empty',
tls: 'empty',
child_process: 'empty'
}
}
vue-cli脚手架之webpack.base.conf.js的更多相关文章
- vue-cli 2.x脚手架build目录中的webpack.base.conf.js配置文件
此文章用来解释vue-cli脚手架build目录中的webpack.base.conf.js配置文件,适用于vue-cli 2.x版本 此配置文件是vue开发环境的wepack相关配置文件,主要用来处 ...
- 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 ...
- vue-cli脚手架build目录中的webpack.base.conf.js配置文件
转载自:http://www.cnblogs.com/ye-hcj/p/7082620.html webpack.base.conf.js配置文件// 引入nodejs路径模块 var path = ...
- vue -- 脚手架之webpack.dev.conf.js
webpack.dev.conf.js 开发环境模式配置文件: 'use strict'//js按照严格模式执行 const utils = require('./utils')//导入utils. ...
- vue-cli脚手架之webpack.prod.conf.js
webpack.prod.conf.js 生产环境配置文件: 'use strict'//js严格模式执行 const path = require('path')//这个模块是发布到NPM注册中心的 ...
- 手撕vue-cli配置——webpack.base.conf.js篇
在开始写webpack.base.conf.js(简称base)之前,我们先来看一下vue-loader.conf.js这个文件,毕竟在base中我们还会用到: 'use strict' //引入前一 ...
- vue-cli下面的config/index.js注解 webpack.base.conf.js注解
config/indexjs详解上代码: 'use strict' // Template version: 1.3.1 // see http://vuejs-templates.github.io ...
- vue.js---利用vue cli脚手架工具+webpack创建项目遇到的坑
1.Eslint js代码规范报错 WARNING Compiled with 2 warnings 10:43:26 ✘ http://eslint.org/docs/rules/quotes St ...
- vue-cli脚手架之webpack.dev.conf.js
webpack.dev.conf.js 开发环境模式配置文件: 'use strict'//js按照严格模式执行 const utils = require('./utils')//导入utils. ...
随机推荐
- Vue自定义指令,ref ,sync,slot
一.自定义指令 vue中可以自己设置指令,通过directive来实现,有2种创建方式,一种是局部创建,一种是全局创建. 第一种:局部创建 如果想注册局部指令,组件中也接受一个 directives ...
- 你可能不知道的github语法——图标
概述 逛github,看到别人的仓库的description里面有各种炫丽的图标,不禁有点好奇,于是去查了下怎么写真的被我查到了,记录在下面,供以后开发时参考,相信对其他人也有用. 图标 可以先看看g ...
- 纯CSS下拉菜单(希望对有需要的小伙伴有所帮助)
效果截图(颜色有点丑,请无视): <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- Java学习笔记29(集合框架三:泛型)
泛型的概念: 简单地讲,就是同一个方法(类),可以接受不同的数据类型并运行得到相对应的结果,不会出现安全问题 上一篇有一段这样的代码: 没有定义集合类型.迭代器类型 package demo; imp ...
- Linux学习笔记《六》
- OPC安装-配置(http://www.mabotech.com)
1.使用opc,需要在机器上安装OPC运行环境.opc运行环境包含:opc_aeps.dll.opccomn_ps.dll.opcdaauto.dll.OpcEnum.exe.opcproxy.dll ...
- Oracle 创建表并设置主键自增
创建数据库 CREATE TABLE STUDENT(ID NUMBER PRIMARY KEY, NAME VARCHAR(200) NOT NULL, SEX VARCHAR(200), CREA ...
- 带分页功能的SSH整合,DAO层经典封装
任何一个封装讲究的是,使用,多状态.Action: 任何一个Action继承分页有关参数类PageManage,自然考虑的到分页效果,我们必须定义下几个分页的参数.并根据这个参数进行查值. 然 ...
- 采用完成端口(IOCP)实现高性能网络服务器(Windows c++版)
前言 TCP\IP已成为业界通讯标准.现在越来越多的程序需要联网.网络系统分为服务端和客户端,也就是c\s模式(client \ server).client一般有一个或少数几个连接:server则需 ...
- 【Flask-RESTPlus系列】Flask-RESTPlus系列译文开篇
0x00 背景介绍 因为工作上的需要,最近开始研究Python中实现Restful API的框架和工具包.之前粗略学习过Flask,由于它比较轻量级,感觉用它来实现Restful API再适合不过了. ...