构建前端自动化工作流环境

目标:建一个自动化工作流环境

  自动编译

  自动合并

  自动刷新

  自动部署

 

工作流:

1 全局安装webpack

执行命令:

npm install webpack webpack-cli  -g    

 

其中webpack-cil 是命令接口工具

2 初始化当前项目:npm init

然后一路回车即可

3 为了避免冲突,我们再进行局部安装:npm install webpack webpack-cli --save -d

说明:安装到了开发环境下的工具

 

打开项目文件夹,发现多了两个文件:

也多了一个文件夹:

当传文件时,可以将该文件夹删除,在新的项目中,执行:npm install  他将会帮忙将所有依赖全部下载下来;

 4 执行 webpack:

报错如下

Insufficient number of arguments or no entry found.
Alternatively, run 'webpack(-cli) --help' for usage info.

这是因为需要一个入口文件,默认是从src 下的index.js文件为 入口文件

这时需要新建一个src 文件夹下,然后新建一个index.js 的入口文件;

重新执行没有再报错:

 这时候需要额外了解 webpack的4个核心概念:

入口 (entry)

出口 (output)

loader  解析器

插件  (plugins)

5 规定webpack处理打包方式——

有两种方式:1shell 语句的方式 例如手动命令行写入: webpack --mode=development  配置文件为开发环境

      2 配置文件的方式 ,新建一个webpack.config.js 的文件,然后将配置要求写入该文件中,以本次项目为例,webpack.config.js  文件内容如下:

var UglifyJSPlugin = require('uglifyjs-webpack-plugin');
module.exports = {
entry: {
index: './src/js/meituan.js',
goodsInfo: './src/js/goodsInfo.js'
},
output: {
filename: '[name].js',
path: __dirname   '/out',
// publicPath: 'http://localhost:8080/out',
    },
module: {
rules: [
{test: /.js$/, use: ['babel-loader']},
{test: /.(jpg|png|gif|svg|ttf|woff|eot)$/, use: ['url-loader?limit=1000&name=./[name].[ext]']},             
{test: /.css$/, use: ['style-loader', 'css-loader']}
]
},
plugins: [
new UglifyJSPlugin(),
],
mode: 'development'

 

 

入口文件中需要配置依赖::

require('../css/reset.css');
require('../plug/css/swiper.min.css');
require('../webfont/iconfont.css');
require('../css/meituanIndex.css');

 

然后我们发现,每次修改完文件后都需要重新执行下打包 ;

webpack

 

 

6 这样很不方便,因此我们可以开启一个监听: webpack --watch 

这样每次修改完文件后不需要重新打包~!有木有很方便

7 更神奇的是webpack还可以帮我们开启一个服务器:webpack-dev-server

 

需要执行如下命令先安装下webpack-dev-server:

npm install webpack-dev-server -D 

然后执行:webpack-dev-server 会自动开启一个端口

8 应用loader:

  

 module: {
rules: [
{test: /.js$/, use: ['babel-loader']},
{test: /.(jpg|png|gif|svg|ttf|woff|eot)$/, use: ['url-loader?limit=1000&name=./[name].[ext]']},             
{test: /.css$/, use: ['style-loader', 'css-loader']}
]
},

 

需要用到三个解析器

npm install file-loader html-loader extract-loader -D

html-loader:

{

  test:/ \.html$/,

  use:[

    //单独抽离的html 文件进行配置

    {

       loader: ' file-loader',

       options:{

          name:'index.html'

        }

    },

    //单独抽离

    {

    loader:‘extract-loader’

    },

    //找到html 文件

    {

    loader: ' html-loader'

    }

 

  ]

}

 

 

8  安装插件 

 

压缩js:

npm install uglifyjs-webpack-plugin -D

然后在webpack-config.js 下添加引用:

 

压缩CSS  的插件

 首先安装

  npm install mini-css-extract-plugin -D

 

简单工作流程:

初始化 ——>编译——>输出—如果文件发生变化—>重新编译——输出

 

 

下一期随笔写: 熟练使用less/sass

 


更多专业前端知识,请上 【猿2048】www.mk2048.com

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

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

相关文章

大型布线:Java云应用程序缺少的技术

您是否曾经想过,为什么大多数Java框架中的依赖项注入仅用于本地进程内服务而不是分布式服务? 我最近在2013年EMC世界大会上遇到了Paul Maritz的主题演讲 (跳至第32分钟),这使我在云平台的背景下思考了这个问题。 主题…

【单镜头反光相机】CCD、CMOS

CCD、CMOS:图像传感器、电荷耦合器 CCD简介CMOS简介:①被动式 ,被动式像素结构(Passive Pixel Sensor.简称PPS),又叫无源式。 ②主动式,主动式像素结构(Active Pixel Sensor.简称APS…

CSS-定位

CSS定位:相对定位 position: relative 参照物:相对元素原来的位置进行偏移。绝对定位 position:absolute 参照物:往上级元素逐层查找,直到找有position属性的元素,以有position属性的元素为参照物来偏移&#xff0c…

java面向对象中的抽象,类与对象

一、抽象 什么是抽象?将鸽子和麻雀看做是鸟,这是抽象;将整个空调的行为用遥控代替,遥控就可以看做是空调的抽象;将外貌,种族,语言等等形形色色不同的个体看做是人这样一个概念,这也是…

剑灵系统推荐加点_剑灵重制修炼系统 无定式加点打造自我风格

这将是《剑灵(和“标准答案”说再见我们经常可以在论坛中看到类似“求刺客副本修炼”这样的帖子,也有很多热心玩家分享他们的点法。而在这些“标准答案”中,我们又可以经常看到类似“A、B、C必点,剩下的3点修炼随意”这样的论调。但其实这些并…

使用Guava对并发应用程序进行基于对象的微锁定

编写并发Java应用程序时最令人讨厌的问题之一是对线程之间共享的资源的处理,例如Web应用程序的会话和应用程序数据。 结果,如果应用程序的并发级别很低,许多开发人员选择根本不同步这些资源。 例如,不太可能同时访问会话资源&…

java cpu过高排查_涨薪秘籍:JAVA项目排查cpu负载过高

背景我负责的其中一个项目在空负载的情况下,CPU占用率依然保持着100%左右,线上、测试、开发的服务都一样;是什么导致的呢?在开发环境我查看了请求流量,这个流量可以忽略但CPU占用率一直在60%-100%之间浮动。分析问题流…

理财app说明

cordova库和魔蝎库使用的比较多 另外一个使用比较多的就是腾讯的youtu的第三方库,友盟的app统计的功能也有用 推送上使用的有激光推送、魅族推送、小米推送 另外多任务处理方面,有使用blots的库转载于:https://www.cnblogs.com/istar/p/9673249.html

巧用css的border属性完成对图片编辑功能的性能优化

一、需求场景: 最近闲来无事,boss提出了一个要求,研究相关代码并完成一个关于编辑图片功能的性能优化,该功能的主要界面展示如下: 通过了几分钟的短暂试用,发现就是一个简单的裁剪并保存用户选择并上传的图…

『Balancing Act 树的重心』

树的重心 我们先来认识一下树的重心。 树的重心也叫树的质心。找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。 根据树的重心的定义,我们可以通过树形DP来求解树的重心。 设\(Max_i\)代…

求数的绝对值一定是正数_人教版初中数学七年级上册绝对值公开课优质课课件教案视频...

绝对值(习题课)导学案(教师版)【教学目标】1、能利用绝对值的性质求值。 2、通过复习绝对值,让学生对绝对值的理解更加深透。 3、通过复习,让学生掌握利用绝对值的代数和几何意义,并学会灵活运用…

使用Java EE安全性和JBoss AS 7.x保护JSF应用程序的安全

企业应用程序的常见要求是在登录页面后面保护所有JSF页面。 有时,您甚至希望在应用程序内部具有保护区,只有拥有特定角色的用户才能访问这些保护区。 Java EE标准附带实现受某些安全性约束保护的Web应用程序所需的所有方法。 在此博客文章中,…

java 十六进制转十进制_JAVA知识-分析JAVA中的重点和难点

Java中有很多内容在开发项目的过程中并不常用,但是却是很重要的部分,为了避免忘记,今天重新温习了一遍Java中的重点和难点,借此机会记录一下方便以后查找。本文主要分为以下几个部分:1.进制的相互转换2.Java中位运算符…

java运算符知识整理

赋值运算符: int a 0;a 2;System.out.println("a0"""".."a);int b 0;b2;System.out.println("b0""b2"".."b);int c 0;c-2;System.out.println("c0""c-2"".."c);int d 1;d*2;S…

开放才能进步!Angular和Wijmo一起走过的日子

Angular 已成为广受欢迎的前端框架。去年9月份,期待已久的 Angular2 的正式版发布之后,Angular 又迎来了新一轮热潮。伴随着 Angular 这一路走来,Wijmo 一直都是第一个全面支持各种版本 Angular 的JS控件库,为 Angular 用户提供着…

windows 检查cuda安装_Windows云主机GPU驱动-CUDA安装使用

IE安全相关配置如果打开浏览器无法正常下载,则需要设置Internet Explorer增强的安全配置。设置如下:打开"服务器管理器";点击"本地服务器";"IE增强的安全配置";选择"关闭"; 之…

镜像镜像–使用反射在运行时查看JVM内部

开发人员:Takipi会告诉您何时新代码在生产中中断– 了解更多 我们都习惯于在我们的日常工作中直接或通过利用反射的框架来运用反射。 它是Java和Scala编程的主要方面,它使我们使用的库可以与我们的代码进行交互,而无需对其进行硬编码的知识。…

UnicodeMath数学公式编码_翻译(Unicode Nearly Plain - Text Encoding of Mathematics Version 3)

目录 完整目录1. 简介2. 编码简单数学表达式2.1 分数2.2 上标和下标2.3 空白(空格)字符使用3. 编码其他数学表达式3.1 分隔符强烈推荐本文简明版UnicodeMath编码教程 本文为UnicodeMath官方文档的翻译,原文看这。翻译如有不准还请谅解&#x…

antd 表格树如何展开_如何分析工作,找出规律,使用excel大幅度提高工作效率...

在职场中,掌握一定的excel知识,有时候可以极大的提高工作效率,减少加班次数。但是有的人可能不知道如何去做,下面我使用一个我前几天遇到的工作场景,一步一步的来给大家展示一下,如何使用excel提高工作效率…

eclipse插件 tcp/iip monitor

http://huangrongyou.iteye.com/blog/1764041 转载于:https://www.cnblogs.com/chyxOne/p/9673784.html