webpack开发Vue配置

一直以来使用webpack都是用的别人的配置,这几天自己学习了一下。

项目地址:https://github.com/donghaohao...

新建整个工程

  1. npm init

  2. 安装依赖,这里我们开发vue项目,npm install vue --save,然后是开发时的依赖npm install --save-dev

  3. 这里有个重点是写package.json里面的scripts,因为我们要分开发环境和生产环境。开发环境使用webpack-dev-server热替换,生产环境需要压缩,加hash等。使用npm run dev 或 npm run build 就可以运行下面的脚本。

    "dev": "webpack-dev-server --inline --hot --compress --history-api-fallback --config webpack.dev.config.js","build": "webpack --progress --hide-modules --config webpack.prod.config.js"

配置

这里分为三个:webpack.base.config.js webpack.dev.config.js webpack.prod.config.js

  1. entry设置入口文件,可以设置多个,就会打包成多个,vendors是我们如果引用了vue,jQuery等,就不会把这些和代码打包到一起,会另外生成vendor.js。

    entry: {main: './src/index.js',vendors: ['vue']
    },
  2. 输出目录,这里path是最后打包完的输出目录,publicPath是server上的目录,这个自行设置好路径。我们在开发模式的时候并不会输出到目录的。

  3. webpack主要就是各种loader,这个可以参考我的github上的,需要解释的有两点,一是使用vue-loader时,因为需要使用postcss,所以下面需要这样写:

      vue: {autoprefixer: false,postcss: [nested(),cssnext({ browsers: ['last 2 versions', 'Android >= 2.1', 'iOS >= 7.0'] }),flexFallback(),],},

    二个就是使用url-loader时,它会自动在图片后面加hash,强迫症患者表示不行,我们在开发模式下不加,生产模式下加。

    // 开发模式
    config.module.loaders.push({test: /\.(gif|jpg|png|jpeg|svg)\??.*$/, loader: 'url-loader?name=[name].[ext]&limit=8192'
    });
    // 生产模式
    config.module.loaders.push({test: /\.(gif|jpg|png|jpeg|svg)\??.*$/, loader: 'url-loader?limit=8192'
    });
  4. preLoaders 就是提前处理,这里我们使用了eslint,需要检查书写规范,然后添加 .eslintrc 文件.

  5. resolve,extensions就是你require的时候可以省略扩展名,alias就是别名,在require的时候直接使用别名,避免写的太长。

    resolve: {// 扩展,require时省略扩展名extensions: ['', '.js', '.vue'],// 别名alias: {filter: path.join(__dirname, './src/filters'),components: path.join(__dirname, './src/components')}}
  6. 插件

    • ExtractTextPlugin 提取CSS。

    • HtmlWebpackPlugin 生产html,这个可以自己生成也可以指定模板,会将打包的js和css插入到html中,这个有好多其他参数,可自行搜索。

    • webpack.optimize.CommonsChunkPlugin 这个为了抽取前面vendor里的第三方库,打包成另外的文件。

    • webpack.optimize.UglifyJsPlugin 压缩代码。(生产模式)

    • CleanWebpackPlugin 这个是我最新发现的一个,主要是在打包到dist之前先删除以前的dist,因为加hash厚并不会覆盖。(生产模式)

  7. 这里使用了ES6,所以要配置一下.babelrc。

增加项目文件

这里我只是增加了一些测试的项目文件,开发和生产都正常,如有需要可以自行添加其他目录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/284001.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ABP详细教程——模块类

概述模块化是ABP vNext的最大亮点,也是ABP vNext框架的核心,而模块类是ABP vNext框架模块化的核心要素。这一章节,我就从模块类的用法、运行机制、源代码等层面,带大家详细了解ABP vNext的模块类。用法在ABP的约定中,每…

[转]Eureka工作原理

目录 Eureka 工作原理 Eureka 核心概念 自我保护机制 Eureka 集群原理 Eurka 工作流程 总结 Eureka 工作原理 上节内容为大家介绍了,注册中心 Eureka 产品的使用,以及如何利用 Eureka 搭建单台和集群的注册中心。这节课我们来继续学习 Eureka&…

重谈联想5G编码投票事件

此前,司马南谈了联想好几个问题,其中最尖锐的要属国有资产流失,这是联想管理层无法回避的死穴。不过,司马南批判联想5G投票背刺H公司,这基本就是造谣了。当年,媒体把编码投票炒作的很厉害,抨击联…

JStorm2.1.1集群的安装和使用

为什么80%的码农都做不了架构师?>>> JStorm2.1.1集群的安装和使用 Storm是一个免费开源、分布式、高容错的实时计算系统,而JStorm是阿里巴巴开源的基于Storm采用Java重写的一套分布式实时流计算框架,在性能和支持的集群规模上做了…

Hystrix 原理

Hystrix是什么? Hystrix是Netflix开源库,这是一个针对分布式系统的延迟和容错库。 Hystrix 供分布式系统使用,提供延迟和容错功能,隔离远程系统、访问和第三方程序库的访问点,防止级联失败,保证复杂的分布…

「深度」无人机实名制政策特稿|市场看好、资本关注,“反黑飞”正在崛起

从政策和需求来看,“反黑飞”越来越重要,市场也正在不断崛起。 对于大多数人来说,今天是最适合明目张胆“装嫩”的六一儿童节。不过,在无人机厂商和无人机玩家的眼里,今天是无人机实名制政策正式实施的日子。 近年来&…

在navicat中新建数据库

前言: 在本地新建一个名为editor的数据库; 过程: 1.; 2.选择:utf8mb4 -- UTF-8 Unicode字符集,原因在于:utf8mb4兼容utf8,且比utf8能表示更多的字符。,而且它支持表情符号…

MASA Stack 第三期社区例会

MASA Blazor 0.5.0发版内容功能Autocomplete:支持通过设置AutoSelectFirst参数开启自动选择第一项的功能,支持CacheItems参数,增强使用上下键的用户体验。BottomNavigation::一个替代侧边栏的新组件。它主要用于移动应…

[转]高并发架构设计之--「服务降级」、「服务限流」与「服务熔断」

目录 服务降级 1 、简介 2 、使用场景 3 、核心设计 3.1 分布式开关 3.2 自动降级分类 3.3 配置中心 3.4 处理策略 3.5 降级分类 3.6 服务降级要考虑的问题 4 、高级特性 4.1 分级降级 4.2 降级权值 5 、总结与展望 服务限流 一、为什么要做服务限流设计&…

SpringBoot获取ApplicationContext

2019独角兽企业重金招聘Python工程师标准>>> 有两种方法: 创建Component实现ApplicationContextAware接口,SpringBoot会自动调用这个类的setApplicationConext()方法。鼓励使用这种方式。SpringApplication.run(MyApplication.class, args)这…

SkiaSharp 之 WPF 自绘 投篮小游戏(案例版)

此案例主要是针对光线投影法碰撞检测功能的示例,顺便做成了一个小游戏,很简单,但是,效果却很不错。投篮小游戏规则,点击投篮目标点,就会有一个球沿着相关抛物线,然后,判断是否进入篮…

zuul集成ribbon完成服务通信和负载均衡

目录 Zuul2服务通信 超时相关 默认超时配置 自定义超时配置 负载均衡 Zuul2服务通信 描述:zuul2通过Ribbon完成客户端负载均衡以及与服务器群集进行通信。 zuul2的通信是集成Ribbon实现的,在Origin中集成Ribbon基本配置(例如IClientCo…

时任上海来伊份互联网事业群总裁王戈钧 :传统企业(线上+线下)移动互联网改造...

2017年12月22日-23日,第13届信息化领袖峰会暨2017中国数字化贡献人物颁奖盛典在上海盛大开幕。本次峰会由上海市经济和信息化委员会指导,上海市国有资产信息中心、上海市计算机用户协会、上海市信息服务业行业协会、上海大数据联盟、上海市高等教育学会支…

【.NET6+Modbus】Modbus TCP协议解析、仿真环境以及基于.NET实现基础通信

接下来的内容,我会以从头开发一个简单的基于modbus tcp通信的案例,来实现一个基础的通信功能。有关环境:开发环境:VS 2022企业版运行环境:Win 10 专业版.NET 环境版本:.NET 6【备注】 源码在文末 1、新建一…

源码深度剖析Eureka与Ribbon服务发现原理

本文基于 spring cloud dalston,同时文章较长,请选择舒服姿势进行阅读。 Eureka 与 Ribbon 是什么?和服务发现什么关系? Eureka 与 Ribbon 都是 Netflix 提供的微服务组件,分别用于服务注册与发现、负载均衡。同时&a…

std的find和reverse_iterator联合使用

上代码&#xff1a; // test2013.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h" #include <stdlib.h> #include <stdio.h> #include<iostream> #include<vector> #include<map> #include<string> using namespace …

论如何提升学习的能力

为啥要学习如果有一件事情是能改变你自己的&#xff0c;我想这件事情必然就是学习&#xff0c;我的人生重要的转折点也是从学习这件事情始发的&#xff0c;那么&#xff0c;我们就从这里开始。学习不仅仅是为了找到答案&#xff0c;而是为了找到方法&#xff0c;找到一个可以找…

CSS布局解决方案(终结版)

前端布局非常重要的一环就是页面框架的搭建&#xff0c;也是最基础的一环。在页面框架的搭建之中&#xff0c;又有居中布局、多列布局以及全局布局&#xff0c;今天我们就来总结总结前端干货中的CSS布局。 居中布局 水平居中 1&#xff09;使用inline-blocktext-align&#xff…

基于ABP和Magicodes实现Excel导出操作

前端使用的vue-element-admin框架&#xff0c;后端使用ABP框架&#xff0c;Excel导出使用的Magicodes.IE.Excel.Abp库。Excel导入和导出操作几乎一样&#xff0c;不再介绍。文本主要介绍Excel导出操作和过程中遇到的坑&#xff0c;主要是Excel文件导出后无法打开的问题。一.Mag…

消息模式在实际开发应用中的优势

曾经.NET面试过程中经常问的一个问题是&#xff0c;如果程序集A&#xff0c;引用B &#xff0c;B 引用C&#xff0c;那么C怎么去访问A中的方法呢。 这个问题初学.net可能一时想不出该咋处理&#xff0c;这涉及到循环引用问题。但有点经验的可能就简单了&#xff0c;通过委托的方…