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

简介: 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

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

相关文章
|
30天前
|
缓存 Devops jenkins
专家视角:构建可维护的测试架构与持续集成
【10月更文挑战第14天】在现代软件开发过程中,构建一个可维护且易于扩展的测试架构对于确保产品质量至关重要。本文将探讨如何设计这样的测试架构,并将单元测试无缝地融入持续集成(CI)流程之中。我们将讨论最佳实践、自动化测试部署、性能优化技巧以及如何管理和扩展日益增长的测试套件规模。
43 3
|
19小时前
|
前端开发
结合具体案例分析Gitflow分支策略在大型前端项目中的应用优势
通过这个具体案例可以看出,Gitflow 分支策略在大型前端项目中能够提供有条不紊的开发环境,保障项目的稳定性和持续发展。
|
2月前
|
运维 监控 持续交付
构建高效运维体系的策略与实践xxxx xxxx-xx-xx xx:xx 发布于 xx
在当今数字化浪潮中,运维作为信息技术的重要支柱,其效率与创新能力直接关系到企业信息系统的稳定性和业务发展的可持续性。本文从提升运维效率的角度出发,探讨了如何通过策略规划、自动化工具应用、监控优化及团队建设等手段,实现运维工作的高效化和价值最大化,旨在为运维领域从业者提供一套可借鉴和实施的高效运维体系构建方案。
34 1
|
2月前
|
敏捷开发 测试技术 持续交付
构建高效团队:敏捷开发与远程协作的最佳实践
在快速发展的技术行业中,构建高效的开发团队至关重要。本文介绍了敏捷开发的核心原则,包括跨功能团队、迭代进展、持续改进和客户合作,并探讨了远程协作的挑战与机遇。面对沟通障碍、时区差异等挑战,企业可以通过明确沟通渠道、建立清晰工作流程、促进团队凝聚力、利用自动化工具及灵活安排工作来提升远程团队的效率。敏捷开发与远程协作相结合,不仅能提高生产力,还能增强团队的创新能力和凝聚力。
|
3月前
|
API 项目管理 开发者
构建高效的技术文档策略
【8月更文挑战第7天】在技术快速发展的今天,有效的文档编写不仅能够加速知识传递,还能促进团队协作和项目管理。本文将探讨如何构建一个高效的技术文档策略,涵盖从规划到实施的各个阶段,旨在帮助读者理解并应用这些原则以提升工作效率和文档质量。
|
6月前
|
Kubernetes 开发工具 git
带你读《代码管理实践10讲》——一、量体裁衣,寻找适合你团队的代码协同模式(1)
带你读《代码管理实践10讲》——一、量体裁衣,寻找适合你团队的代码协同模式(1)
131 2
|
6月前
|
存储 运维 监控
带你读《代码管理实践10讲》——九、打通源码!高效定位代码问题
带你读《代码管理实践10讲》——九、打通源码!高效定位代码问题
83 0
|
6月前
|
持续交付 开发工具 Android开发
带你读《代码管理实践10讲》——一、量体裁衣,寻找适合你团队的代码协同模式(2)
带你读《代码管理实践10讲》——一、量体裁衣,寻找适合你团队的代码协同模式(2)
120 0
|
6月前
|
人工智能 API 开发工具
基于流程编排工具低代码搭建大模型应用
流程编排是一种面向开发者的可视化开发工具,支持LLM、API、脚本等类型节点,旨在简化接入大型语言模型(LLM)流程,同时提供应用流程的全生命周期管理,包括流程的编排、试验、部署等,为开发者提供自定义AI应用开发一站式服务。
|
运维 前端开发 jenkins
前端自动化集成部署交付实践
随着前后端分离应用模式的推广,前端项目可独立部署维护上线,不再仅仅将前端开发后打包的文件直接丢到一个文件目录下就完事大吉了,现在对前端来说也需要了解运维的相关知识,本文旨在介绍一些相关的运维概念以及一些前端运维的实践。
336 0