转载自:http://www.cnblogs.com/ye-hcj/p/7082620.html

webpack.base.conf.js配置文件// 引入nodejs路径模块

  1. var path = require('path')
    // 引入utils工具模块,具体查看我的博客关于utils的解释,utils主要用来处理css-loader和vue-style-loader的
  2. var utils = require('./utils')
    // 引入config目录下的index.js配置文件,主要用来定义一些开发和生产环境的属性
  3. var config = require('../config')
    // vue-loader.conf配置文件是用来解决各种css文件的,定义了诸如css,less,sass之类的和样式有关的loader // 详情请看(1)
  4. var vueLoaderConfig = require('./vue-loader.conf')
  5. // 返回到dir为止的绝对路径
  6. function resolve (dir) {
  7. return path.join(__dirname, '..', dir)
  8. }
  9. module.exports = {
  10. entry: {
    // 入口文件是src目录下的
  11. index: ['babel-polyfill', './src/index-main.js'],
  12. admin: ['babel-polyfill', './src/admin-main.js']
  13. },
  14. output: {
    // 路径是config目录下的index.js中的build配置中的assetsRoot,也就是dist目录
  15. path: config.build.assetsRoot,
  16. filename: '[name].js', //name就是入口文件前面的key值,此处是index和admin
  17. //资源发布路径 // 上线地址,也就是真正的文件引用路径,
  18. publicPath: process.env.NODE_ENV === 'production'
  19. ? config.build.assetsPublicPath
  20. : config.dev.assetsPublicPath
  21. },
  22. resolve: {
    // resolve是webpack的内置选项,也就是说当使用 import "jquery",该如何去执行这件事
    // 情就是resolve配置项要做的,import jQuery from "./additional/dist/js/jquery" 这样会很麻烦,可以起个别名简化操作
  23. extensions: ['.js', '.vue', '.json'],// 省略扩展名,也就是说.js,.vue,.json文件导入可以省略后缀名,这会覆盖默认的配置,所以要省略扩展名在这里一定要写上
  24. alias: {
    //我的理解是此处指定别名 require('
    vue/dist/vue.esm.js') 可以简化为require('vue$')
  1. // resolve('src') 其实在这里就是项目根目录中的src目录,使用 import somejs from "@/some.js" 就可以导入指定文件,是不是很高大上
  2. '@': resolve('src')
  3. }
  4. },
    // module用来解析不同的模块
  5. module: {
  6. rules: [
  7. {
    // 对vue文件使用vue-loader,该loader是vue单文件组件的实现核心,专门用来解析.vue文件的
  8. test: /\.vue$/,
  9. loader: 'vue-loader',
    // 将vueLoaderConfig当做参数传递给vue-loader,就可以解析文件中的css相关文件
  10. options: vueLoaderConfig
  11. },
  12. {
  13. test: /\.js$/,
    // 对js文件使用babel-loader转码,该插件是用来解析es6等代码
  14. loader: 'babel-loader',
    // 指明src和test目录下的js文件要使用该loader
  15. include: [resolve('src'), resolve('test')]
  16. },
  17. {
    // 对图片相关的文件使用 url-loader 插件,这个插件的作用是将一个足够小的文件生成一个64位的DataURL
    // 可能有些老铁还不知道 DataURL 是啥,当一个图片足够小,为了避免单独请求可以把图片的二进制代码变成64位的
  18. test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
  19. loader: 'url-loader',
  20. options: {
        // 限制 10000 个字节以下转base64,以上不转
  21. limit: 10000,
  22. name: utils.assetsPath('img/[name].[hash:7].[ext]'),
  23. //资源发布路径
  24. //publicPath: 'http://vue.cn/'
  25. }
  26. },
  27. {
  28. test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
    // 字体文件处理,和上面一样
  29. loader: 'url-loader',
  30. options: {
  31. limit: 10000,
  32. name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
  33. }
  34. }
  35. ]
  36. }
  37. }

vueLoaderConfig就是下面的

  1. {
  2. css: ExtractTextPlugin.extract({
  3. use: [{
  4. loader: 'css-loader',
  5. options: {
  6. sourceMap: true,
  7. extract: true
  8. }
  9. }],
  10. fallback: 'vue-style-loader'
  11. }),
  12. postcss: ExtractTextPlugin.extract({
  13. use: [{
  14. loader: 'css-loader',
  15. options: {
  16. sourceMap: true,
  17. extract: true
  18. }
  19. }],
  20. fallback: 'vue-style-loader'
  21. }),
  22. less: ExtractTextPlugin.extract({
  23. use: [
  24. {
  25. loader: 'css-loader',
  26. options: {
  27. sourceMap: true,
  28. extract: true
  29. }
  30. },
  31. {
  32. loader: 'less-loader',
  33. options: {
  34. sourceMap: true,
  35. extract: true
  36. }
  37. }
  38. ],
  39. fallback: 'vue-style-loader'
  40. }),
  41. sass: ExtractTextPlugin.extract({
  42. use: [
  43. {
  44. loader: 'css-loader',
  45. options: {
  46. sourceMap: true,
  47. extract: true
  48. }
  49. },
  50. {
  51. loader: 'sass-loader',
  52. options: {
  53. sourceMap: true,
  54. extract: true,
  55. indentedSyntax: true
  56. }
  57. }
  58. ],
  59. fallback: 'vue-style-loader'
  60. }),
  61. //剩下的略
  62. }

vue-cli脚手架build目录中的webpack.base.conf.js配置文件的更多相关文章

  1. vue-cli 2.x脚手架build目录中的webpack.base.conf.js配置文件

    此文章用来解释vue-cli脚手架build目录中的webpack.base.conf.js配置文件,适用于vue-cli 2.x版本 此配置文件是vue开发环境的wepack相关配置文件,主要用来处 ...

  2. vue-cli脚手架build目录中的webpack.dev.conf.js配置文件

    此文章用来解释vue-cli脚手架build目录中的webpack.dev.conf.js配置文件 此配置文件是vue开发环境的wepack相关配置文件 关于注释 当涉及到较复杂的解释我将通过标识的方 ...

  3. vue-cli脚手架build目录中的webpack.prod.conf.js配置文件

    // 下面是引入nodejs的路径模块 var path = require('path') // 下面是utils工具配置文件,主要用来处理css类文件的loader var utils = req ...

  4. vue-cli脚手架build目录中的karma.conf.js配置文件

    本文系统讲解vue-cli脚手架build目录中的karma.conf.js配置文件 这个配置文件是命令 npm run unit 的入口配置文件,主要用于单元测试 这条命令的内容如下 "c ...

  5. vue-cli脚手架build目录中的dev-server.js配置文件

    本文系统讲解vue-cli脚手架build目录中的dev-server.js配置文件 这个配置文件是命令npm run dev 和 npm run start 的入口配置文件,主要用于开发环境 由于这 ...

  6. vue-cli脚手架build目录中的build.js配置文件

    该随笔收藏自: vue-cli脚手架build目录中的build.js配置文件 这个配置文件是命令npm run build 的入口配置文件,主要用于生产环境 由于这是一个系统的配置文件,将涉及很多的 ...

  7. vue-cli脚手架build目录中check-versions.js的配置

    转载自:https://www.cnblogs.com/ye-hcj/p/7074363.html 本文介绍vue-cli脚手架build目录中check-versions.js的配置 本文件是用来检 ...

  8. 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 ...

  9. vue-cli脚手架之webpack.base.conf.js

    webpack相关的重要配置文件将在这一节给出.webpack水很深啊^o^,在此先弄清楚原配文件内容的含义,后续可以自己根据实际情况配置. webpack.base.conf.js:配置vue开发环 ...

随机推荐

  1. Docker(1)在CentOS上的安装与卸载

     一. Docker的安装 CentOS7 上安装: 1. 卸载旧版本 $ sudo yum remove docker \ docker-client \ docker-client-latest ...

  2. Linux命令之乐--seq

    用法及参数:  -f, --format=格式      使用printf 样式的浮点格式,默认是g%  -s, --separator=字符串     使用指定字符串分隔数字(默认使用:\n)  - ...

  3. 数据库为什么要用B+树结构--MySQL索引结构的实现(转)

    B+树在数据库中的应用 { 为什么使用B+树?言简意赅,就是因为: 1.文件很大,不可能全部存储在内存中,故要存储到磁盘上 2.索引的结构组织要尽量减少查找过程中磁盘I/O的存取次数(为什么使用B-/ ...

  4. java基础---->java自带的xml解析

    在查看公司框架的源码的时候,发现框架用的是jdk自带的xml解析.今天,想着对它总结一下.从未放弃过爱你,只是从浓烈变得悄无声气. 利用jdk自带的xml创建文档 一. CreateXmlFile类如 ...

  5. python 自己定义异常

    通过创建一个新的异常类,就可以命名自己的异常,异常应该是典型的继承自Exception类 例如: # 定义了一个自己的异常类,可在适当时候通过raise来触发它class ExError(Except ...

  6. docker harbor 安装 使用总结

    总结:没有验证,但是猜测. 我这个harbor的机器上  有起了一个 docker的 registry, 5000端口的,不知道是不是二者冲突. 猜测是这个情况. 1. 安装参考 收藏的链接 1.1  ...

  7. Android 代码规范 code style

    /* * 文件名(可选),如 CodingRuler.java * * 版本信息(可选),如:@version 1.0.0 * * 版权申明(开源代码一般都需要添加),如:Copyright (C) ...

  8. Android 将时间戳转为代表"距现在多久之前"的字符串

    public String getStandardDate(int dateTime) { StringBuffer sb = new StringBuffer(); long t = Long.pa ...

  9. 第一个MapReduce的例子

    第一个MapReduce的例子 Hadoop Guide的第一个MapReduce的例子是处理气象数据的(数据来源ncdc),终于跑通了.总结一下步骤,安装hadoop不在本文中介绍 1 数据预处理 ...

  10. web.xml 中以编码方式添加filter并设置初始化参数AbstractAnnotationConfigDispatchServletInitializer

    web.xml中配置filter <?xml version="1.0" encoding="UTF-8"?> <web-app versio ...