Karma + JSPM + Typescript - 未找到“.ts.js”

Posted

技术标签:

【中文标题】Karma + JSPM + Typescript - 未找到“.ts.js”【英文标题】:Karma + JSPM + Typescript - not found '.ts.js' 【发布时间】:2016-12-26 00:01:07 【问题描述】:

主要是想让 Karma+JSPM 在加载 .ts 文件时表现良好,但绝对没有运气。

我看到 discussion repo 带有一个精简的示例。

基本上,Karma 中的 JSPM 在 Karma 中运行时似乎忽略了 defaultJSExtensions: true 和包级别 "defaultExtension": "ts" 配置,尝试加载文件时会出现以下错误:

$ npm test

> karma-jspm-typescript-coverage@1.0.0 test C:\examples\karma-jspm-typescript-coverage
> karma start

18 08 2016 17:29:31.937:INFO [karma]: Karma v1.2.0 server started at http://localhost:1337/
18 08 2016 17:29:31.943:INFO [launcher]: Launching browser Chrome with unlimited concurrency
18 08 2016 17:29:31.974:INFO [launcher]: Starting browser Chrome
18 08 2016 17:29:33.075:INFO [Chrome 52.0.2743 (Windows 7 0.0.0)]: Connected on socket /#jTR10wm0CWNIfrdhAAAA with id 75197348
18 08 2016 17:29:33.317:WARN [web-server]: 404: /src/app/app.spec.ts.js
Chrome 52.0.2743 (Windows 7 0.0.0) ERROR
  Error: (SystemJS) XHR error (404 Not Found) loading http://localhost:1337/src/app/app.spec.ts.js
        Error: XHR error (404 Not Found) loading http://localhost:1337/src/app/app.spec.ts.js
        Error loading http://localhost:1337/src/app/app.spec.ts.js

npm ERR! Test failed.  See above for more details.

注意 .ts.js 扩展名。尝试了从 karma-typescript-proprocessor 到通过不同的 JSPM 配置加载而不是实时运行。

尽量保留它,因此无需管理 .js 编译文件,只使用 .ts 文件。开发服务器和捆绑/构建功能齐全 - 这个测试和覆盖部分是我的最后一个障碍。

如果您可以给我任何指示,请告诉我!

【问题讨论】:

【参考方案1】:

包级别 "defaultExtension": "ts" 不适用,因为 karma 运行在***目录中,比 src 目录高一级,其中包含 config.js 和

baseURL: '.'

如果我在那里复制 app 包配置并在其前面加上 src,如下所示:

  packages: 
    "src/app": 
      "main": "app",
      "defaultExtension": "ts",
      "meta": 
        "*.ts": 
          "loader": "ts"
        
      
    ,
    "app": 
      "main": "app",
      "defaultExtension": "ts",
      "meta": 
        "*.ts": 
          "loader": "ts"
        
      
    
  ,

我可以更进一步。我现在得到了

Error: (SystemJS) XHR error (404 Not Found) loading http://localhost:9876/jspm_packages/github/frankwallis/plugin-typescript@5.0.9.js

这表明 karma-jspm 插件无法在 SystemJS 期望的 URL 处提供源文件

【讨论】:

你是个天才!将其和代理添加到 karma 配置。 proxies : "/src" : "/base/src", "/jspm_packages" : "/base/src/jspm_packages" , 更改已在 github 项目中更新。

以上是关于Karma + JSPM + Typescript - 未找到“.ts.js”的主要内容,如果未能解决你的问题,请参考以下文章

jspm / jQuery / TypeScript - 模块“jquery”没有默认导出

JSPM + TypeScript + PhotoSwipe:如何成功导入和使用库?

Aurelia + JSPM + Typescript 浏览器端调试

Aurelia + Asp.net Web Api + Typescript + JSPM

Angular2 + typescript + jspm:没有 Http 提供者( App -> Provider -> Http )

编译Angular2 TS时如何配置gulp-typescript以与JSPM一起使用