Can I run Grunt.js on build server without installing dependencies in every build?
我在使用Grunt作为构建过程的一部分时遇到了一些困难。我们正在使用TeamCity服务器在部署之前运行grunt命令。实际上,我们希望能够签入未缩小的JS和CSS,然后在部署之前让Grunt为我们缩小它。
我遇到的问题是,对于每个构建TeamCity,删除构建文件系统的内容,然后将其从Git中拉出来(这很好,因为当我们不需要旧文件时,它可以阻止旧文件在周围徘徊)。不过,grunt似乎坚持所有依赖项都安装在gruntfile.js的本地。
这意味着对于每个构建,我都必须运行
我希望能够以某种方式在全球范围内安装依赖项,并且只下载一次(它们很少更改),并且每次构建时只使用这些下载的依赖项。但我似乎不知道怎么做?
我玩弄着签入
下面是package.json,显示我们有哪些依赖关系:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | { "name":"name", "title":"title", "description":"description", "version":"0.0.1", "engines": { "node":">=0.8" }, "scripts": { "test":"grunt assemble" }, "dependencies": { "assemble":"^0.4.42", "css-parse":"^1.5.3", "globule":"^0.2.0", "grunt":"~0.4.2", "grunt-combine-media-queries":"^1.0.19", "grunt-contrib-clean":"^0.6.0", "grunt-contrib-concat":"^0.3.0", "grunt-contrib-connect":"^0.6.0", "grunt-contrib-copy":"~0.5.0", "grunt-contrib-cssmin":"^0.10.0", "grunt-contrib-jshint":"^0.8.0", "grunt-contrib-less":"^0.9.0", "grunt-contrib-uglify":"^0.3.3", "grunt-contrib-watch":"^0.5.3", "grunt-cssshrink":"0.0.5", "grunt-lesslint":"^1.1.7", "grunt-modernizr":"^0.5.2", "grunt-prettify":"^0.3.5", "grunt-replace":"^0.6.2", "grunt-stripmq":"0.0.3", "handlebars-helper-repeat":"^0.2.0", "load-grunt-tasks":"^0.2.1", "pretty":"^0.1.2", "time-grunt":"^0.2.10" }, "keywords": [ "assemble", "templates", "handlebars", "site generator", "site builder", "grunt" ] } |
实际上我没有设置这个,而且我对咕噜的大部分知识,都来自于几天的研究,所以我不能100%确定为什么要将这个配置为它是这样的。如果有什么惊人的错误,愿意接受更好的建议吗?
实际上,您可能想要配置工件依赖关系。
我的意思是,您可以创建一个单独的构建配置,它有两个功能:
npm install 获取所有8K文件- 将
node_modules 文件夹保存为工件(打包为存档,为什么不保存?)
然后,该配置可以配置一些触发规则,以便在
然后,您现在拥有的主要配置将依赖于第一个配置。然后它将配置工件规则来获取