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

手撕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 = require('path')
const baseWebpackConfig = require('./webpack.base.conf')
//一個拷貝資源的外掛,後面我會介紹用法
const CopyWebpackPlugin = require('copy-webpack-plugin')
//生成html模板的外掛,一個經常用到的wbepack外掛 const HtmlWebpackPlugin = require('html-webpack-plugin') //一個更友好展示錯誤日誌的外掛 const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') //一個自動開啟可用埠的包 const portfinder = require('portfinder') //當前環境的host const HOST = process.env.HOST //當前環境的port const PORT = process.env.PORT && Number(process.env.PORT)
//開發環境的配置 const devWebpackConfig = merge(baseWebpackConfig, { module: { //loader的配置,具體內容可以參考utils檔案 rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true }) }, // cheap-module-eval-source-map is faster for development devtool: config.dev.devtool, devServer: {
//重新載入server時,控制檯對一些錯誤以warning的方式提示 clientLogLevel: 'warning', //當使用 HTML5 History API 時,任意的 404 響應都可能需要被替代為 index.html historyApiFallback: { rewrites: [ { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') }, ], }, //啟用 webpack 的模組熱替換特性 hot: true, //告訴伺服器從哪裡提供內容。只有在你想要提供靜態檔案時才需要,這裡我們禁用 contentBase: false, //是否壓縮 compress: true, host: HOST || config.dev.host, port: PORT || config.dev.port, //是否自動開啟瀏覽器 open: config.dev.autoOpenBrowser, //編譯出錯時是否有提示 overlay: config.dev.errorOverlay ? { warnings: false, errors: true } : false, //靜態內容的路徑,此路徑下的打包檔案可在瀏覽器中訪問 publicPath: config.dev.assetsPublicPath, //介面的代理 proxy: config.dev.proxyTable, //啟用 quiet 後,除了初始啟動資訊之外的任何內容都不會被列印到控制檯。這也意味著來自 webpack 的錯誤或警告在控制檯不可見。 quiet: true, // necessary for FriendlyErrorsPlugin //監視檔案的選項 watchOptions: { poll: config.dev.poll, } }, plugins: [ //DefinePlugin 允許建立一個在編譯時可以配置的全域性常量。這裡生成了一個當前環境的常量 new webpack.DefinePlugin({ 'process.env': require('../config/dev.env') }), //模組熱替換外掛,修改模組時不需要重新整理頁面 new webpack.HotModuleReplacementPlugin(), //當開啟 HMR 的時候使用該外掛會顯示模組的相對路徑 new webpack.NamedModulesPlugin(), //在編譯出現錯誤時,使用 NoEmitOnErrorsPlugin 來跳過輸出階段。這樣可以確保輸出資源不會包含錯誤。 new webpack.NoEmitOnErrorsPlugin(), new HtmlWebpackPlugin({ filename: 'index.html', template: 'index.html', //打包後js檔案放在body的最後 inject: true }), //將static的內容拷貝到開發路徑,忽略這個資料夾下“.XX”的檔案 new CopyWebpackPlugin([ { from: path.resolve(__dirname, '../static'), to: config.dev.assetsSubDirectory, ignore: ['.*'] } ]) ] })

相關推薦

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

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

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配置文件——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

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.prod.conf.js 檔案程式碼註釋

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

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-dev-conf.js文件配置

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

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模擬後臺數據,請求本地數據的配置(舊版本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-cli腳手架之開發環境的webpack配置——webpack.base.conf.js

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

vue - webpack.dev.conf.js for merge

.html ubd history name kcon pac tool 有用 sin webpack-merge提供了一個merge連接數組並合並創建新對象的對象的函數。如果遇到函數,它將執行它們,通過算法運行結果,然後再次將返回的值包裝在函數中。 這種行為在配置web

vue - webpack.dev.conf.js for CopyWebpackPlugin

pan 忽略 rect pyw npm sset plugin ring path 描述:將單個文件或整個目錄復制到構建目錄 官網地址:https://www.npmjs.com/package/copy-webpack-plugin 1 //

vue - webpack.dev.conf.js for HtmlWebpackPlugin

www. 一個 載器 .org http oda 哈希 dash 技術分享 描述:   這是一個webpack插件,可以簡化HTML文件的創建,為您的webpack捆綁服務提供服務。   這對於webpack包含文件名中包含哈希值的bundle 來說尤其有用,它會更改每

vue - webpack.dev.conf.js for FriendlyErrorsPlugin

ssi 格式 控制 描述 mil func nal 每次 class 描述:webpack網頁端友好的報錯信息就來自它 官網:https://www.npmjs.com/package/friendly-errors-webpack-plugin

vue - webpack.dev.conf.js

mit hist 導出 num sage eve web mpi stc 描述:開發時的配置.(配置開發時的一些操作) 例如這裏,是否自動打開瀏覽器(默認true) 1 ‘use strict‘ 2 3 // build