1. 程式人生 > >手撕vue-cli配置——webpack.base.conf.js篇

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

在開始寫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

在開始寫webpack.base.conf.js(簡稱base)之前,我們先來看一下vue-loader.conf.js這個檔案,畢竟在base中我們還會用到: 'use strict' //引入前一篇文章的utils檔案 const utils = require('./utils') //引入conf

vue-cli配置——webpack.prod.conf.js

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

vue-cli配置——webpack.dev.conf.js

const utils = require('./utils') const webpack = require('webpack') const config = require('../config') const merge = require('webpack-merge') const path

vue-cli配置檔案——check-versions.js

check-versions.js,vue-cli中檢查版本的js檔案。 'use strict' const chalk = require('chalk') const semver = require('semver') const packageConfig = require('../packag

vue-cli 專案 webpack.base.conf.js 檔案程式碼註釋

'use strict' // 基礎配置檔案 webpack.base.conf.js // 註釋參考 https://www.cnblogs.com/ye-hcj/p/7082620.html 和 https://yq.aliyun.com/articles/60982

vue-cli腳手架之開發環境的webpack配置——webpack.base.conf.js

webpack相關的重要配置檔案將在這一節給出。webpack水很深,在此先弄清楚原配檔案內容的含義,後續可以自己根據實際情況配置。 webpack.base.conf.js:配置vue開發環境的webpack配置,處理各種檔案(js、css、vue、圖片、視訊…) // An

vue-cli配置文件——check-versions.js

pac 更多 分代 常用 改變 engines shell. 檢測 emp check-versions.js,vue-cli中檢查版本的js文件。 ‘use strict‘ const chalk = require(‘chalk‘) const semver = re

vue-cli配置——utils.js

utils.js檔案主要是用來處理各種css loader的,比如css-loader,less-loader等。 //引入path模組 const path = require('path') //引入之前的config模組 const config = require('../config') //

vue-cli配置檔案——config

最近一直在研究webpack,突然想看看vue-cli中的webpack是如何配置,查閱了很多相關的文章,所以也想出幾篇關於vue-cli配置的東西。正所謂“工欲善其事必先利其器”嘛!這一篇主要是分析vue中關於config資料夾中的相關程式碼; 首先我們先看一下config的檔案結構: |-config

vue-cli 專案 webpack.prod.conf.js 檔案程式碼註釋

// 生產模式配置檔案 webpack.prod.conf.js // 註釋參考 https://www.cnblogs.com/ye-hcj/p/7082620.html 和 https://yq.aliyun.com/articles/609824 和 https:/

vue2.0配置webpack.dev.conf.js加載本地json數據

AR route find 數據 port 本地 use ack data 打開webpack.dev.conf.js 在const portfinder = require(‘portfinder‘)後加入以下配置 1 const express = require(‘

vue-cli搭建項目模擬後臺接口數據,webpack-dev-conf.js文件配置

server 模擬 style routes webpack 是你 api 第一步 js文件 首先第一步 const express = require(‘express‘) const app = express() var appData = require(‘../

vue-cli腳手架build目錄中的webpack.prod.conf.js配置文件

htm uglifyjs hunk ubd ever color ssp IT config // 下面是引入nodejs的路徑模塊 var path = require(‘path‘) // 下面是utils工具配置文件,主要用來處理css類文件的loader var

vue-cli搭建專案模擬後臺介面資料,webpack-dev-conf.js檔案配置

注:本篇寫於2018-12,基於vue2.xxx   (一)路徑:bulid / webpack.dev.conf.js  1、在webpack.dev.conf.js 裡面找到 const portfinder = require(‘portfinder’),然後在下面寫上以下程式

底層:vue-cli腳手架build目錄中的webpack.prod.conf.js配置檔案

首先宣告:這篇文章摘錄自別人的文件,直接複製過來的,方便於以後自己檢視,如有侵權,請諒解// 下面是引入nodejs的路徑模組var path = require('path')// 下面是utils工具配置檔案,主要用來處理css類檔案的loadervar utils =

vue-cli 利用 webpack 給生產環境和發布環境配置不同的接口地址的三種方法

方法 -1016 開發環境 class 們的 pack json config proc 第一種方法: 在/config/dev.env.js下配置如下 在/config/prod.env.js下配置如下 已經分別設定路徑,接下來就是如何調用的問題了。 原來api文件

vue-cli腳手架npm相關文件說明-2、webpack.prod.conf.js

base upd esp dev 如何 resolve 壓縮 ont 緩存 下面介紹webpack.prod.conf.js中相關配置代碼和配置的說明,建議先查閱build/webpack.prod.conf.js /* * Webpack 生產環境配置文件,用於生

vue模擬後臺數據,請求本地數據的配置(舊版本dev-server.js,新版本webpack.dev.conf.js

ges 根目錄 ddl json nbsp vue-cli 數據訪問 接口 logs 最近學習一個vue-cli的項目,需要與後臺進行數據交互,這裏使用本地json數據來模仿後臺數據交互流程。然而發現build文件夾下沒有dev-server.js文件了,因為新版本的vue

vue-cli腳手架之webpack.dev.conf.js

webpack.dev.conf.js 開發環境模式配置檔案: // An highlighted block 'use strict'//js按照嚴格模式執行 const utils = require('./utils')//匯入utils.js const webpack = re

vue-cliwebpack配置解析

product merge 框架 重定向 webpack 文件類型 app nor 通過 版本號 vue-cli 2.8.1 (終端通過vue -V 可查看) vue 2.2.2 webpack 2.2.1 目錄結構 ├── README.md ├── build