vue-cli脚手架build目录下utils.js工具配置文件

  • 此配置文件是vue开发环境的wepack相关配置文件,主要用来处理css-loader和vue-style-loader。
  • 这个就是构建工具相关的东西配置
  • 解释下css-loader he style-loader
    css-loader: 加载.css文件
    style-loader:使用<style>将css-loader内部样式注入到我们的HTML页面
// 引入nodejs路径模块
var path = require('path')
// 引入config目录下的index.js配置文件
var config = require('../config')
// 引入extract-text-webpack-plugin插件,用来将css提取到单独的css文件中
// 详情请看(1)
var ExtractTextPlugin = require('extract-text-webpack-plugin')
// exports其实就是一个对象,用来导出方法的最终还是使用module.exports,此处导出assetsPath
exports.assetsPath = function (_path) {// 如果是生产环境assetsSubDirectory就是'static',否则还是'static',哈哈哈var assetsSubDirectory = process.env.NODE_ENV === 'production'? config.build.assetsSubDirectory: config.dev.assetsSubDirectory// path.join和path.posix.join的区别就是,前者返回的是完整的路径,后者返回的是完整路径的相对根路径// 也就是说path.join的路径是C:a/a/b/xiangmu/b,那么path.posix.join就是breturn path.posix.join(assetsSubDirectory, _path)// 所以这个方法的作用就是返回一个干净的相对根路径
}// 下面是导出cssLoaders的相关配置
exports.cssLoaders = function (options) {// options如果没值就是空对象options = options || {}// cssLoader的基本配置var cssLoader = {loader: 'css-loader',options: {// options是用来传递参数给loader的// minimize表示压缩,如果是生产环境就压缩css代码minimize: process.env.NODE_ENV === 'production',// 是否开启cssmap,默认是falsesourceMap: options.sourceMap}}// generate loader string to be used with extract text pluginfunction generateLoaders (loader, loaderOptions) {// 将上面的基础cssLoader配置放在一个数组里面var loaders = [cssLoader]// 如果该函数传递了单独的loader就加到这个loaders数组里面,这个loader可能是less,sass之类的if (loader) {loaders.push({// 加载对应的loaderloader: loader + '-loader',// Object.assign是es6的方法,主要用来合并对象的,浅拷贝options: Object.assign({}, loaderOptions, {sourceMap: options.sourceMap})})}// Extract CSS when that option is specified// (which is the case during production build)// 注意这个extract是自定义的属性,可以定义在options里面,主要作用就是当配置为true就把文件单独提取,false表示不单独提取,这个可以在使用的时候单独配置,瞬间觉得vue作者好牛逼if (options.extract) {return ExtractTextPlugin.extract({use: loaders,fallback: 'vue-style-loader'})} else {return ['vue-style-loader'].concat(loaders)}// 上面这段代码就是用来返回最终读取和导入loader,来处理对应类型的文件}// https://vue-loader.vuejs.org/en/configurations/extract-css.htmlreturn {css: generateLoaders(), // css对应 vue-style-loader 和 css-loaderpostcss: generateLoaders(), // postcss对应 vue-style-loader 和 css-loaderless: generateLoaders('less'), // less对应 vue-style-loader 和 less-loadersass: generateLoaders('sass', { indentedSyntax: true }), // sass对应 vue-style-loader 和 sass-loaderscss: generateLoaders('sass'), // scss对应 vue-style-loader 和 sass-loaderstylus: generateLoaders('stylus'), // stylus对应 vue-style-loader 和 stylus-loaderstyl: generateLoaders('stylus') // styl对应 vue-style-loader 和 styl-loader }
}// Generate loaders for standalone style files (outside of .vue)
// 下面这个主要处理import这种方式导入的文件类型的打包,上面的exports.cssLoaders是为这一步服务的
exports.styleLoaders = function (options) {var output = []// 下面就是生成的各种css文件的loader对象var loaders = exports.cssLoaders(options)for (var extension in loaders) {// 把每一种文件的laoder都提取出来var loader = loaders[extension]output.push({// 把最终的结果都push到output数组中,大事搞定test: new RegExp('\\.' + extension + '$'),use: loader})}return output
}

转自 https://www.cnblogs.com/ye-hcj/p/7078047.html

vue-cli脚手架build目录下utils.js工具配置文件相关推荐

  1. Vue2.x 核心基础(Vue概述,Vue基本使用,@vue/cli脚手架,Element-UI 的基本使用,Vue模板语法)

    1. Vue概述 尤雨溪:Vue.js的创建者 2014年2月,Vue.js正式发布 2015年10月27日,正式发布1.0.0 2016年4月27日,发布2.0的预览版本 Vue:渐进式JavaSc ...

  2. 猿创征文|【Vue五分钟】 Vue Cli脚手架创建一个项目

    目录 前言 一.创建项目的操作步骤 选择路由模式 选择CSS预编译器 选择如何存放配置 自动下载项目所需的包文件 二.启动vue项目 1.项目目录 2.启动项目 3.浏览器打开项目首页界面 三.项目的 ...

  3. 如何查看vue版本号以及vue/cli脚手架版本号

    查看vue版本号 方法一:直接在项目的package.json文件,找到dependencies就能看到了 方法二:输入命令npm ls vue (或者npm list vue) 查看vue/cli脚 ...

  4. Vue CLI 脚手架详解:快速构建 Vue.js 项目的利器

    目录 一.安装和创建项目 二.项目结构 三.开发和构建 四.插件和配置 Vue CLI 是 Vue.js 官方提供的脚手架工具,它可以帮助开发者快速搭建 Vue.js 项目的基础结构,并提供了丰富的功 ...

  5. Windows PowerShell安装指定版本vue/cli脚手架失效解决办法;vue : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\vue

    mac搭建vue项目看这篇 打开shift--鼠标右键,就可以打开Windows PowerShell 1.安装vue/cli npm install -g @vue/cli@3.12.0 @后面是版 ...

  6. 1. Vue CLI脚手架

    1.1 介绍 Vue脚手架指的是vue-cli,它是一个专门为单页面应用快速搭建的脚手架,它可以轻松的创建新的应用程序而且可用于自动生成vue和webpack的项目模板,是Vue官方提供的标准化开发工 ...

  7. vue.cli脚手架初次使用图文教程

    vue-cli作用 vue-cli作为vue的脚手架,可以帮助我们在实际开发中自动生成vue.js的模板工程. vue-cli使用 !!前提:需要vue和webpack 安装全局vue-cli npm ...

  8. vue Cli 脚手架的搭建

    1.安装 node.js  应用 安装完之后测试是否安装成功,如图: 2.全局安装 vue - cli 输入命令符: npm install --global vue-cli 测试是否安装成功,成功如 ...

  9. 前端框架vue04~~vue.cli脚手架的基本使用

    文章目录 [1. Vue-CLI脚手架](https://cli.vuejs.org/zh/guide/) [2. 安装](https://cli.vuejs.org/zh/guide/install ...

最新文章

  1. pip virtualenv requirements
  2. Java中lombok @Builder注解使用详解
  3. 【渝粤教育】电大中专电子商务网站建设与维护 (22)作业 题库
  4. 修改win10我的文档下载等移动别处
  5. 容器的进程与namespace、rootfs
  6. 使用Flexible实现H5页面的终端适配
  7. 洛谷P2473奖励关——状压DP
  8. Linux基础学习记录
  9. MatLab数字图像处理实战(赵小川)-sift原理
  10. 量子计算机交叉学,人工智能与量子物理交叉研究 有多少激动人心的事
  11. 高考录取查询显示内部服务器错误,为什么江苏成人高考成绩查询网页一直打不开...
  12. super expression must either be null or a function 报错解决方法
  13. [codeforces 1353E] K-periodic Garland 为什么会想到动归dp
  14. Win10提示“无法创建新的分区也找不到现有的分区”
  15. 2021最新版本Python的下载安装及使用入门教程
  16. SpringAMQP发送与接收消息
  17. 电影影评的文本分类——基于tensorflow
  18. Kubernetes学习笔记(二):Pod控制器详解:资源元信息、ReplicaSet、Deployment、DaemonSet、Job、CronJob
  19. 黄仁勋:串行计算过时并行计算是未来
  20. 信息与通信的数学基础——Laplace变换

热门文章

  1. 对人的外部评价与内部评价
  2. 数智学习|湖仓一体实践与探索
  3. 计算机网络基础第5版教案,计算机网络基础 第5章教案
  4. 【擦哥擦姐的CSDN博客】原创系列博客清单整理【截至2022年9月30日】
  5. linux7网卡名确定网卡,centos7 修改默认的网卡名称
  6. android usb通讯波特率,USB串口的特殊波特率通信
  7. C++新特性——郭炜
  8. 如何获得小米手机4c的Root超级权限
  9. 知网复制太麻烦了?试试这个方法
  10. 你的代码值多少钱 ?你算过吗