
作为前端Web开发人员,我一直在关注新技术和最新信息。 New是性感的,尤其是当它使您正在研究的产品更优化,更清洁和/或更易于使用时,即使这种甜味的价格有时会随着项目复杂性的增加而增加。
每个Javascript开发人员都知道这一点:在这方面的工作中,您要么游泳要么死亡。 以AngularJs为例:不久之前是The Thing。 现在Angular2已准备好投入生产,并且Google倾向于在新产品投入使用时将其旧产品销毁,这引发了一个问题:当google投入使用时,您是否会升级或冒着发现重大安全漏洞的风险?停止修补AngularJs了?
关键是:尝试进行最新的尝试,在我看来,大肆宣传甚至是明智的。
但这可能导致一个问题。
每个人都有自己的技能
不是您团队中的每个人都可能知道Java语言,这没关系,这是您作为前端开发人员的工作,但是有时候,如果没有人知道如何使用Java脚本,那么其中的某些内容可能会对您的团队造成负担。
大多数开发人员不一定精通Npm甚至Webpack的奥秘,但他们需要使之工作才能使用该项目或进行部署。 他们需要使用命令,并且需要了解它的作用。
在这里,您有2个选择:
首先,您可以教大家如何使用Webpack。 您需要解释每个命令及其作用。 但是,这可能会变得很烦人,因为如果您的复杂应用程序具有用于生产,开发,测试的构建,则每次添加Webpack管道时都需要重新解释所有内容。
让每个人的生活更轻松
或者,您可以执行所有操作的魔术命令。 这可能是一个有争议的选择,但这是我为避免浪费每个人的时间并让我的团队提高工作效率和速度而做出的选择。 如果还有最糟糕的事情,那还要加上大量的文档(例如,如果我被外星人绑架了)。
那我该怎么办? 好吧,我使用了两件事:npm脚本和make。
Npm脚本是方便的脚本,它允许从您的node_modules在本地执行与CLI的依赖关系,而不必全局安装所有内容,并且它们可以链接命令(即:安装东西,构建…)。
为了使npm脚本变得简单,请使用package.json
“ name”:“您的项目”,
“ description”:“”,
“ version”:“ 0.0.0”,
“引擎”: {
“ node”:“ 7.0.0”,
“ npm”:“ 2.10.1”
},
“脚本”:{
“ super-install”:“ npm install && webpack --progress”,
“ build”:“ webpack --progress”,
“ build:dev”:“ webpack --progress”,
“ start”:“ webpack --progress --watch”
},
“私人”:是的,
“依赖关系”:{
“ mobx”:“ ^ 3.1.9”,
“ mobx-react”:“ ^ 4.1.7”,
“反应”:“ ^ 15.3.0”
},
“ devDependencies”:{
“ webpack”:“ ^ 2.3.3”
}
}
将您的内容添加到脚本道具中就可以了。 要使用您的npm脚本,只需键入npm run yourScript
npm运行构建
就是这样,很容易。
但这对我来说还不够。
一个命令将它们全部带入黑暗中将它们束缚
例如,如果要在每次安装前清除所有依赖项,则使用npm脚本,您实际上不能使用诸如“ rm -rf node_modules”之类的unix命令。 另外,再次,有些人真的不喜欢npm或(不支持js开发人员:D)。
为避免此问题,我使用了make。 Make允许您使用bash进行所有操作,甚至启动npm脚本。 您只需要创建一个Makefile(无扩展名),然后编写脚本即可。 这是我的Makefile的摘录:
定义npm_script_targets
目标:= $(shell node -e'for(require(“ ./ package.json”)。scripts中的var k)(console.log(k.replace(/:/ g,“-”));}' )
$$(目标):
纱线$(subst-,:,$(MAKECMDGOALS))
.PHONY:$$(目标)
恩迪夫
$ {eval $ {call npm_script_targets))
更新:
@echo“ \ xF0 \ x9F \ x90 \ xB8欢迎使用update命令,它将更新projet并重建”
@sleep 4s
@echo“ \ xF0 \ x9F \ x9A \ xBD清理依赖项”
rm -rf node_modules
@sleep 2s
@echo“ \ xF0 \ x9F \ x90 \ xB1更新依赖项”
使npm安装
@echo“ \ xE2 \ x9A \ xA1编译webpack”
做build-dev
@echo“成功”
第一部分解析我的package.json中的npm脚本,并将’:’更改为’-‘,因为’:’用于在make中声明脚本。 然后,您将拥有显示内容的更新命令(带有表情符号,我不是怪物),清理依赖项,安装所有内容并进行构建。
因此,拉动项目时唯一要做的就是键入:
进行更新
瞧!
每当我更改构建或启动应用程序的方式时,只要需要,我都会更新我的make脚本,这样对于团队中的每个人都是完全透明的,他们只需要使用相同的旧magic命令即可。
从此以后快乐地生活着
现在,我希望每个人都快乐,我知道。 我可以很高兴地打包我的webpack配置,测试软件包或尝试新的构建配置,而不会在每个人每次拉出项目或与我在同一分支上工作时妨碍每个人的日常工作,太好了!
最终,我会说这主要是关于您和您团队的工作流程,但我认为让他的工作易于使用和每个人都可以理解是每个人的责任。 在最佳环境中,使用魔术命令,您始终可以获取队友的文档以供参考,而他们也始终具有您的文档,对吗? 😀