JPR*_*ddy 6 git deployment azure bower grunt-cli
我正在尝试使用Azure的Git部署来构建和打包我的项目.
我创建了以下文件
我跟随杰伊哈里斯的博客文章.下面给出了deploy.cmd文件中的部署部分:
:: 2. Select node version
call :SelectNodeVersion
:: 3. Install npm packages
IF EXIST "%DEPLOYMENT_TARGET%\package.json" (
  pushd "%DEPLOYMENT_TARGET%"
  call :ExecuteCmd !NPM_CMD! install --production
  IF !ERRORLEVEL! NEQ 0 goto error
  popd
)
:: 4. Install bower packages
IF EXIST "%DEPLOYMENT_TARGET%\bower.json" (
  call !NPM_CMD! install bower
  IF !ERRORLEVEL! NEQ 0 goto error
  call .\node_modules\.bin\bower install
  IF !ERRORLEVEL! NEQ 0 goto error
)
:: 4. run grunt
IF EXIST "%DEPLOYMENT_TARGET%\Gruntfile.js" ( 
  call !NPM_CMD! install grunt-cli  
  call .\node_modules\.bin\grunt --no-color clean common dist
  IF !ERRORLEVEL! NEQ 0 goto error
)
部署失败,出现以下错误:
Selected npm version 3.8.6
Updating iisnode.yml at D:\home\site\wwwroot\iisnode.yml
spa@ D:\home\site\wwwroot
+-- bower@1.7.9  extraneous
npm WARN grunt-contrib-compass@1.0.4 requires a peer of grunt@>=0.4.0 but none was installed.
+-- UNMET PEER DEPENDENCY grunt@>=0.4.0
`-- grunt-cli@1.2.0  extraneous
spa@ D:\home\site\repository
`-- bower@1.7.9  extraneous
spa@ D:\home\site\repository
+-- bower@1.7.9  extraneous
`-- grunt-cli@1.2.0  extraneous
grunt-cli: The grunt command line interface (v1.2.0)
Fatal error: Unable to find local grunt.
If you're seeing this message, grunt hasn't been installed locally to
your project. For more information about installing and configuring grunt,
please see the Getting Started guide:
http://gruntjs.com/getting-started
An error has occurred during web site deployment.
npm WARN grunt-contrib-compass@1.0.4 requires a peer of grunt@>=0.4.0 but none was installed.\r\nC:\Program Files (x86)\SiteExtensions\Kudu\55.50610.2267\bin\Scripts\starter.cmd deploy.cmd
我不确定我还需要做什么来安装它.试图通过网络搜索类似的问题,但找不到任何具体的解决方案.如果有人能帮助我,那将是很棒的.
我的package.json
{
  "name": "myapp",
  "private": true,
  "devDependencies": {
    "autoprefixer-core": "^5.2.1",
    "grunt": "^0.4.5",
    "grunt-angular-templates": "^0.5.7",
    "grunt-concurrent": "^1.0.0",
    "grunt-contrib-clean": "^0.6.0",
    "grunt-contrib-compass": "^1.0.0",
    "grunt-contrib-concat": "^0.5.0",
    "grunt-contrib-connect": "^0.9.0",
    "grunt-contrib-copy": "^0.7.0",
    "grunt-contrib-cssmin": "^0.12.0",
    "grunt-contrib-htmlmin": "^0.4.0",
    "grunt-contrib-imagemin": "^1.0.0",
    "grunt-contrib-jshint": "^0.11.0",
    "grunt-contrib-uglify": "^0.7.0",
    "grunt-contrib-watch": "^0.6.1",
    "grunt-filerev": "^2.1.2",
    "grunt-google-cdn": "^0.4.3",
    "grunt-jscs": "^1.8.0",
    "grunt-newer": "^1.1.0",
    "grunt-ng-annotate": "^0.9.2",
    "grunt-postcss": "^0.5.5",
    "grunt-svgmin": "^2.0.0",
    "grunt-usemin": "^3.0.0",
    "grunt-wiredep": "^2.0.0",
    "imagemin": "^5.2.1",
    "jasmine-core": "^2.4.1",
    "jit-grunt": "^0.9.1",
    "jshint-stylish": "^1.0.0",
    "karma": "^0.13.22",
    "karma-jasmine": "^1.0.2",
    "karma-phantomjs-launcher": "^1.0.0",
    "phantomjs-prebuilt": "^2.1.7",
    "readable-stream": "^2.1.4",
    "through2": "^2.0.1",
    "time-grunt": "^1.0.0",
    "vinyl-fs": "^2.2.1"
  },
  "engines": {
    "node": ">=0.10.0"
  },
  "scripts": {
    "test": "karma start test\\karma.conf.js"
  }
}
注意:到目前为止还没有找到解决方案,我要去Azure支持团队找出我能做什么.一旦找到任何解决方案,我会更新问题.
npm install grunt --save-dev
npm install -g grunt --save-dev
(如果要从脚本-g使用,请尝试全局安装)grunt
该线程提到 grunt 应该安装并存在于PATHfor azure 中:
问题不在于
grunt在路径(“”)上找不到D:\Program Files (x86)\grunt\0.1.13\grunt。它确实开始运行,但它grunt本身在抱怨。
如果我进入Kudu控制台并从文件夹中运行“grunt”D:\home\site\repository,它会显示完全相同的内容。
在本地(即在 Azure 之外)运行 Kudu 时不会发生这种情况。
也许 Azure 网站上的运行时环境有些奇怪。
如grunt issues 1459所示,检查退出状态错误代码:
$ echo $?
99
我们首先会重命名该
node_modules/grunt目录,这样grunt-cli就无法找到本地的grunt。这应该会导致错误代码 99。预期的结果出现了,这让我相信误导性的
grunt-cli错误消息使开发人员误以为 Grunt 本身返回了错误的错误代码。
因此,对于 Azure,grunt 可能已安装并位于路径上,但不是grunt-cli预期的位置。
| 归档时间: | 
 | 
| 查看次数: | 387 次 | 
| 最近记录: |