Build 将Gulp与Visual Studio团队服务一起使用
我希望使用VisualStudioTeamServices设置自动构建,但我一直遇到麻烦。我的生成定义:Build 将Gulp与Visual Studio团队服务一起使用,build,npm,gulp,azure-devops,gulp-ruby-sass,Build,Npm,Gulp,Azure Devops,Gulp Ruby Sass,我希望使用VisualStudioTeamServices设置自动构建,但我一直遇到麻烦。我的生成定义: npm install gulp npm install --save-dev jshint gulp-jshint ruby npm install gulp-ruby-sass gulp-autoprefixer gulp-cssnano gulp-concat gulp-uglify gulp-imagemin gulp-notify gulp-rename gulp-liverelo
npm install gulp
npm install --save-dev jshint gulp-jshint ruby
npm install gulp-ruby-sass gulp-autoprefixer gulp-cssnano gulp-concat gulp-uglify gulp-imagemin gulp-notify gulp-rename gulp-livereload gulp-cache del --save-dev
gem install sass
gulp
尝试安装带有“'gem'未被识别为内部或外部命令”的sass gem时,生成失败。如果我没有首先安装sass gem就构建,gulp将失败,并出现“sass不被识别为内部或外部命令”。有没有人有过让sass在Visual Studio团队服务中工作的经验?这里似乎有几个问题。首先,您可能需要熟悉npm的工作原理,
--save dev
的含义以及本地和全局安装模块之间的区别
--save dev
用于保存用于开发的包,而--save
用于保存运行应用程序所需的包。这两个命令都是在开发机器上运行的,并且您将生成的package.json
置于版本控制之下。
在构建服务器上,您只需运行npm安装
,它将恢复package.json
中列出的所有包
这些是用于本地模块的。您还可以使用-g
标志全局安装模块。这将在当前项目之外存储它们,二进制文件将在路径中可用。项目中需要的模块(使用require
)需要在本地安装。您将从shell调用的模块(例如gulp cli
)需要全局安装
因此,您需要做的是:
- 在开发计算机上,使用带有
--save
或--save dev
标志的npm install
添加所有本地npm模块
- 将生成的
package.json
文件置于版本控制之下
- 在构建服务器上,您需要确保安装了所有必需的全局npm模块
- 使用VSTS npm任务调用
npm install
,以恢复本地npm模块。您不需要指定需要安装哪些模块,因为它们已经列在package.json
文件中
- 使用带有适当参数的VSTS gulp任务调用
gulp
您使用的VSTS任务是什么?设置是什么?在构建服务器上运行npm install
和--save dev
也没有意义。我使用的是带有默认设置的npm、命令行和gulp。我几乎没有建立自动构建的经验,也没有gulp的经验,所以所有的东西都是用我找到的教程拼凑起来的。为什么--save dev
在构建服务器上没有意义?那么,上面的命令行语句与什么有关?您使用的是托管构建代理吗?我仍然遇到同样的问题。My package.json:“devDependencies:{“del”:“^2.2.2”,“gulp”:“^3.9.1”,“gulp autoprefixer”:“^3.1.1”,“gulp cache”:“^0.4.5”,“gulp concat”:“^2.6.0”,“gulp cssnano”:“^2.1.2”,“gulp imagemin”:“^3.0.3”,“gulp jshint”:“^2.0.1”,“gulp livereload”:“^3.8.1”,“gulp notify”:“^2.2.2.2.2.0”,“gulp”:“^1.2.2”,“咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜?你的吞咽文件看起来怎么样?gulp任务是否在本地运行?您在全球范围内安装了哪些模块?您是否仍尝试调用gem install sass
,但失败了?在这种情况下,您不想在节点Sass绑定和gulp Sass模块中使用Ruby Sass而不是LibSass的原因是什么?老实说,我只是选择了它,因为这是我在教程中发现的。无论如何,我使用了libsas,并在我的开发机器上编译了一个样式表。然而,在VSTS中,一切似乎都很顺利,但没有文件输出到存储库。构建的文件放在其他地方了吗?我们将离开这个问题的范围:)所做的事情实际上取决于您的gulp脚本和VSTS任务。“没有文件输出到存储库”是什么意思?您是否希望将生成的文件置于版本控制之下?这是什么原因?我建议不要这样做,因为这会导致不同的问题,比如你不再能够在提交时自动触发构建,因为提交也会在构建期间发生,这将导致无限的构建。