进阶:构建具备版本管理能力的项目

简介: webpack是时下十分流行的编译和打包工具,它提供一种可扩展的loader的方式,简单的配置,便可以编译打包各类型的文件,包括js、css、image、font、html,以及各种预编译语言都不在话下。

webpack是时下十分流行的编译和打包工具,它提供一种可扩展的loader的方式,简单的配置,便可以编译打包各类型的文件,包括js、css、image、font、html,以及各种预编译语言都不在话下。

一、回顾与思考

在上一节的【入门:十分钟自动化构建】中我们讲解了如何用gulp去搭建一个工作流。我们认识到gulp是一个流程管理工具,以单个任务为基础单元,组合成为一套完整的工作流,而且gulp还有很多的以gulp-*格式命名的工作模块,用来处理各种资源文件,如果没有看过上一节内容的同学,建议先回去看过,再往下阅读,因为本节内容是跟上一节的知识点紧密联系的。

这一节我们会讲解如何构建具备版本管理能力的项目,什么是版本管理能力?不是什么svn或者branch,我们看这样一个场景来帮助理解:

你用上次搭建的工作流开发了一个网站,然后上线。

第二天打开发现有bug,心想尼玛赶紧趁着老板没发现修复一下。

改完代码,打包,发布,一气呵成,完美。

然而十分钟以后老板让你去一趟办公室,打开页面跟你说有个bug。心里一抽,一看!我勒个去,这坑爹的缓存啊。。。

怎么去解决这个缓存?,或者说,怎么保证我上线一个新版本,可以完完全全地替代旧版本?这就是版本管理。

这问题有很多解决方法,包括手动打个戳啊什么的,像src="a.jpg?201608062315",这确实可以解决,但是如果一次更新的东西很多,你压根改不过来。

gulp能帮我们做这事吗?可以,麻烦,有兴趣的同学可以自行搜索资料。有没有简单点的套路?有的,webpack天然支持这一功能。接下来我们就介绍如何用webpack来搭建这么一套工作流。

二、webpack

webpack的用法,我们简单介绍一下。跟gulp一样,webpack也是写好配置文件才能开始工作。

全局安装webpack

npm install webpack -g

记得养成好习惯,也本地安装一下哦

npm install webpack --save-dev

顺带我们把接下来要用到的几个loader一起安装了:

npm install style-loader css-loader sass-loader swig-loader --save-dev

这里的*-loader作用跟gulp-*差不多,就是一些编译用的模块。

紧接着我们在根目录下,新建一个webpack.config.js配置文件,我们直接来看代码:

var path = require('path')

module.exports = {
 entry: {
 Index: ['./src/js/index.js']
 },
 output: {
 path: path.resolve(__dirname, './dist/static'),
 publicPath: 'static/',
 filename: '[name].js'
 },
 resolve: {
 extensions: ['', '.js', '.scss', '.swig']
 },
 module: {
 loaders: [
 {
 test: /\.css$/,
 loader: 'style!css'
 },
 {
 test: /\.scss$/,
 loader: 'style!css!sass'
 },
 {
 test: /\.swig$/,
 loader: 'swig'
 }
 ]
 }
}

这里大致分为四部分的内容:
entry
入口文件,也就是一切工作的起点,你可以将整个web应用都最终打包成一个js文件,那你只需要定义一个入口,而如果你希望对多个页面独立开来,你需要定义多个入口,最终在不同的页面引用不同的js。一个entry对应生成一个bundle。

output
定义打包输出的配置:

  • path是打包文件的存放路径,按上面的配置,意味着我们待会打包的文件是要放在dist/static下的;
  • publicPath是定义文件被打包后的url前缀的,效果是


原文发布时间:2016-08-16

原文作者:Jack_Lo

本文来源掘金如需转载请紧急联系作者

相关文章
|
6月前
|
数据可视化 搜索推荐 BI
深度解析好用项目管理工具的功能优势
在选择项目管理工具时,重点在于全面的功能和高性价比。好工具应具备资源利用图(避免过度分配或闲置资源),团队协作功能(促进沟通与进度追踪),质量管理(如问题跟踪和自定义工作流),项目规划和跟踪(甘特图支持),任务管理(任务分解和依赖关系),以及费用跟踪。Zoho Projects、Microsoft Project、Jira等工具各有价格差异,例如,对于50个用户,Microsoft Project最贵,Zoho Projects最实惠,性价比高,适合中小企业。
79 2
|
6月前
|
Dubbo 前端开发 Java
让你在组建企业级项目时手到擒来——浅谈各类常用工具和框架概述
让你在组建企业级项目时手到擒来——浅谈各类常用工具和框架概述
|
1月前
|
缓存 Devops jenkins
专家视角:构建可维护的测试架构与持续集成
【10月更文挑战第14天】在现代软件开发过程中,构建一个可维护且易于扩展的测试架构对于确保产品质量至关重要。本文将探讨如何设计这样的测试架构,并将单元测试无缝地融入持续集成(CI)流程之中。我们将讨论最佳实践、自动化测试部署、性能优化技巧以及如何管理和扩展日益增长的测试套件规模。
46 3
|
3月前
|
人工智能 运维 监控
构建高效自动化运维流程的策略与实践
【7月更文挑战第55天】在数字化转型的浪潮下,企业IT基础设施日趋复杂多变,传统的手动运维方式已难以满足快速响应和高稳定性的需求。本文将探讨如何通过自动化工具和策略,构建一个高效的自动化运维流程,旨在提高系统部署的速度、准确性和可靠性,同时降低人为错误和运营成本。我们将详细分析自动化运维的关键组件,以及在实施过程中可能遇到的挑战和解决方案。
|
3天前
|
前端开发
结合具体案例分析Gitflow分支策略在大型前端项目中的应用优势
通过这个具体案例可以看出,Gitflow 分支策略在大型前端项目中能够提供有条不紊的开发环境,保障项目的稳定性和持续发展。
|
2月前
|
运维 监控 持续交付
构建高效运维体系的策略与实践xxxx xxxx-xx-xx xx:xx 发布于 xx
在当今数字化浪潮中,运维作为信息技术的重要支柱,其效率与创新能力直接关系到企业信息系统的稳定性和业务发展的可持续性。本文从提升运维效率的角度出发,探讨了如何通过策略规划、自动化工具应用、监控优化及团队建设等手段,实现运维工作的高效化和价值最大化,旨在为运维领域从业者提供一套可借鉴和实施的高效运维体系构建方案。
34 1
|
2月前
|
图形学 开发工具 git
Unity与版本控制:游戏开发团队如何利用Git打造高效协作流程,实现代码管理的最佳实践指南
【8月更文挑战第31天】版本控制在软件开发中至关重要,尤其在Unity游戏开发中,能提升团队协作效率并避免错误。本文介绍如何在Unity项目中应用版本控制的最佳实践,包括选择Git、配置项目以排除不必要的文件、组织项目结构、避免冲突、规范提交信息以及使用分支管理开发流程,从而提高代码质量和团队协作效率。
215 1
|
3月前
|
API 项目管理 开发者
构建高效的技术文档策略
【8月更文挑战第7天】在技术快速发展的今天,有效的文档编写不仅能够加速知识传递,还能促进团队协作和项目管理。本文将探讨如何构建一个高效的技术文档策略,涵盖从规划到实施的各个阶段,旨在帮助读者理解并应用这些原则以提升工作效率和文档质量。
|
6月前
|
存储 运维 监控
带你读《代码管理实践10讲》——九、打通源码!高效定位代码问题
带你读《代码管理实践10讲》——九、打通源码!高效定位代码问题
83 0
|
6月前
|
存储 测试技术 定位技术
新一代自动化测试工具需要具备的功能
新一代自动化测试工具需要具备的功能