由于jquery打字错误导致失败的azure git部署

时间:2017-07-03 18:18:04

标签: jquery angular azure typescript-typings syncfusion

我正在构建一个使用syncfusion scheduler组件的调度应用程序(基本上是jquery插件的ng2包装器)。根据他们的文档,我添加了jquery和相关的TS类型,并且在对npm版本进行一些升级后,一切都在本地工作正常。

当git部署到azure进行测试和演示时,我的构建失败了。最初的错误如下:

  

找不到模块'validate-npm-package-license'

这不是我必须安装的软件包,但我认为有必要证明我的公司拥有这些控件的许可证(我们这样做)。我已经通过syncfusion获得了一个开放的支持电话,但希望能够在不等太久的情况下取得进展!不确定它是否是有效的修复,但添加了预先发布的脚本:

"prepublish": "npm install -g validate-npm-package-license"

似乎解决了这个问题。然而,除了流程退出之外,下一个构建失败并没有给出真正的理由。在过去的经验中偶尔使用azure git deploy会在传递重新部署之前随机失败,所以我尝试了,但现在收到数百个jquery打字错误,例如:

  

[at-loader]中的错误./node_modules/@types/jquery/index.d.ts:41:40             TS1005:','预计。

     

[at-loader]中的错误./node_modules/@types/jquery/index.d.ts:4332:52             TS1139:预期类型参数声明。

     

[at-loader]中的错误./node_modules/@types/jquery/index.d.ts:35:23             TS2314:泛型类型'JQueryStatic'需要2个类型的参数。

等等。

我已经不得不降级到这些类型的旧版本来修复本地构建错误,但我不确定为什么现在这个版本失败了。

我已经使用环境变量将azure节点版本强制为8.0.0,然后产生了5.0的npm版本,这是我当前的package.json文件:

{
  "name": "scheduler",
  "version": "0.0.0",
  "scripts": {
    "prepublish": "npm install -g validate-npm-package-license",
    "build": "webpack",
    "copy-ej": "xcopy node_modules\\syncfusion-javascript\\Content\\ej wwwroot\\dist\\ej /y /s /i",
    "postinstall": "npm run copy-ej",
    "test": "karma start ClientApp/test/karma.conf.js"
  },
  "dependencies": {
    "@angular/common": "^2.4.5",
    "@angular/compiler": "^2.4.5",
    "@angular/core": "^2.4.5",
    "@angular/forms": "^2.4.5",
    "@angular/http": "^2.4.5",
    "@angular/platform-browser": "^2.4.5",
    "@angular/platform-browser-dynamic": "^2.4.5",
    "@angular/platform-server": "^2.4.5",
    "@angular/router": "^3.4.5",
    "@types/ej.web.all": "^15.2.3",
    "@types/jquery": "^2.0.42",
    "@types/node": "^6.0.42",
    "angular2-jwt": "^0.2.3",
    "angular2-platform-node": "~2.0.11",
    "angular2-template-loader": "^0.6.2",
    "angular2-universal": "^2.1.0-rc.1",
    "angular2-universal-patch": "^0.2.1",
    "angular2-universal-polyfills": "^2.1.0-rc.1",
    "aspnet-prerendering": "^2.0.0",
    "aspnet-webpack": "^1.0.17",
    "awesome-typescript-loader": "^3.0.0",
    "bootstrap": "^3.3.7",
    "css": "^2.2.1",
    "css-loader": "^0.25.0",
    "ej-angular2": "^15.2.43",
    "es6-shim": "^0.35.1",
    "event-source-polyfill": "^0.0.7",
    "expose-loader": "^0.7.1",
    "extract-text-webpack-plugin": "^2.0.0-rc",
    "file-loader": "^0.9.0",
    "html-loader": "^0.4.4",
    "isomorphic-fetch": "^2.2.1",
    "jquery": "^2.2.1",
    "json-loader": "^0.5.4",
    "ngx-bootstrap": "^1.7.0",
    "preboot": "^4.5.2",
    "raw-loader": "^0.5.1",
    "rxjs": "5.4.1",
    "style-loader": "^0.13.1",
    "syncfusion-javascript": "^15.2.43",
    "to-string-loader": "^1.1.5",
    "typescript": "2.2.1",
    "url-loader": "^0.5.7",
    "webpack": "^2.2.0",
    "webpack-hot-middleware": "^2.12.2",
    "webpack-merge": "^0.14.1",
    "zone.js": "0.8.12"
  },
  "devDependencies": {
    "@types/chai": "^3.4.34",
    "@types/jasmine": "^2.5.37",
    "chai": "^3.5.0",
    "jasmine-core": "^2.5.2",
    "karma": "^1.3.0",
    "karma-chai": "^0.1.0",
    "karma-chrome-launcher": "^2.0.0",
    "karma-cli": "^1.0.1",
    "karma-jasmine": "^1.0.2",
    "karma-webpack": "^1.8.0"
  }
}

有关可能导致此问题的建议吗? 干杯

2 个答案:

答案 0 :(得分:0)

类似的问题可以在这里找到:@types/jquery giving breaking solution while Gulp build

@ leonard-thieu指出,

  

@types/jquery需要TypeScript 2.3或更高版本。如果你得到了   错误类似于

     
      
  • 错误TS2314:通用类型“延迟”需要4个类型参数。
  •   
  • 错误TS1005:','预计。
  •   
     

您需要升级到typescript@2.3或更高版本。

您可能还需要将@types/jquery升级为3.2.5

答案 1 :(得分:0)

感谢您对Syncfusion组件的关注。

我们无法重现报告的问题“[at-loader]中的错误./node_modules/@types/jquery/index.d.ts:41:40 TS1005:','预期。”在jquery的结尾处.d.ts @ 2.0.34。我们使用Visual Studio 2015创建了ASP .NET Core Angular示例,并使用Azure应用服务发布它。为方便起见,我们在下面的链接中附上了样本。

Sample

请参阅以下链接,了解上面发布的角度应用。

http://aspnet-sample20170704125558.azurewebsites.net/

供您参考,我们附上已发布应用的日志文件。

log-file

如果您仍然面临问题,请分享您尝试发布的示例应用程序,这有助于您进一步调查,并尽早为您提供解决方案。