vue-cli中配置webpack系列文章三 ------ utils.js
utils.js
var path = require('path') var config = require('../config') var ExtractTextPlugin = require('extract-text-webpack-plugin') // 设置静态文件的公共路径,用于修改src属性的值(通常用于某个loader的options) exports.assetsPath = function (_path) { // 根据不同的环境到对公共路径进行配置并与传入的文件名称进行合并 var assetsSubDirectory = process.env.NODE_ENV === 'production' ? config.build.assetsSubDirectory : config.dev.assetsSubDirectory return path.posix.join(assetsSubDirectory, _path) } // css加载器的相关配置 exports.cssLoaders = function (options) { options = options || {} var cssLoader = { loader: 'css-loader', options: { // 根据不同的环境配置是否要对css文件进行压缩 minimize: process.env.NODE_ENV === 'production', // 根据传入的配置决定是否生成sourceMap用于调试bug sourceMap: options.sourceMap } } // 定义名为"generateLoaders"的函数用于配置css或css预处理器文件 function generateLoaders (loader, loaderOptions) { var loaders = [cssLoader] // 如果有css预处理器文件(如less、sass、stylus等) if (loader) { loaders.push({ // 使用该预处理器对应的加载器 loader: loader + '-loader', // 创建一个空对象,将css加载器初始配置与该预处理器的特殊配置进行合并 options: Object.assign({}, loaderOptions, { sourceMap: options.sourceMap }) }) } // 是否将入口文件(main.js)中引入的css文件一起打包进该文件的css中 // 根据传入的options.extract的值进行判断(一般在生产环境中会去单独打包) if (options.extract) { return ExtractTextPlugin.extract({ use: loaders, fallback: 'vue-style-loader' }) } else { return ['vue-style-loader'].concat(loaders) } } return { css: generateLoaders(), postcss: generateLoaders(), less: generateLoaders('less'), sass: generateLoaders('sass', { indentedSyntax: true }), scss: generateLoaders('sass'), stylus: generateLoaders('stylus'), styl: generateLoaders('stylus') } } // 对.vue文件之外的css文件或css预处理器文件进行处理 exports.styleLoaders = function (options) { var output = [] var loaders = exports.cssLoaders(options) // 循环cssLoaders返回出来的所有文件类型 for (var extension in loaders) { var loader = loaders[extension] // 对每一个文件类型用其相对应的加载器进行处理 output.push({ test: new RegExp('\\.' + extension + '$'), use: loader }) } return output }
相关推荐
hline 2020-07-29
不知道该写啥QAQ 2020-07-18
helloxiaoliang 2020-06-21
Macuroon 2020-09-11
xiaodaiwang 2020-06-11
不知道该写啥QAQ 2020-05-17
xiaofanguan 2020-05-11
HeliumLau 2020-05-03
tozeroblog 2020-02-21
webfullStack 2020-02-11
csm0 2020-01-12
yezitoo 2020-01-11
HeliumLau 2019-12-07
学知不足业精于勤 2019-11-30
心动 2019-11-17
王军强 2019-11-17
webfullStack 2019-11-17
彻底拆分一切可控 2019-11-17