设置 Aurelia、TypeScript 和 Asp.Net Core RC2

Setting up Aurelia, TypeScript, & Asp.Net Core RC2

我正在尝试使用 Aurelia 和 Typescript 建立一个新项目。

我遵循了我能在网上找到的最新指示。使用vs模板创建项目后,我在项目根目录下运行jspm init,配置baseurl为wwwroot。我 运行 遇到的第一个问题是 VS 拒绝将 jspm_packages 作为项目中的文件夹。所以,我再次 运行 jspm 并将包文件夹更改为 wwwroot/lib.
这似乎可行,但打字稿不允许我导入任何 Aurelia 包。我下载骨架项目进行比较。我注意到两件事,框架使用的 Aurelia 版本比我使用 jspm install 时得到的要旧。其次,包与 .d.ts 文件一起下载。我怀疑丢失的 .d.ts 文件导致了智能感知问题。

到目前为止,我一直无法弄清楚如何让 jspm 给我旧版本,我尝试更改 package.json 文件以匹配骨架应用程序中的内容,但是当我 运行 jspm install,我总是得到最新的版本。

是否已从 jspm 包中删除类型?使这项工作正常进行的正确工作流程是什么?

处理 TypeScript 类型的最佳实践是 Typings 模块,以前称为 DefinitelyTyped。首先,从命令行通过 运行 npm install typings --global 安装 Typings。

接下来,在项目的根目录中创建一个 typings.json 文件,其中包含以下依赖项:

typings.json

{
  "name": "my-project",
  "globalDependencies": {
    "aurelia-binding": "github:aurelia/binding/dist/aurelia-binding.d.ts#69d54dbebafe87738f89b8ac4109921544d202cb",
    "aurelia-bootstrapper": "github:aurelia/bootstrapper/dist/aurelia-bootstrapper.d.ts#111ee4eb1e5df7af39305d190d635df7d93cb7e5",
    "aurelia-dependency-injection": "github:aurelia/dependency-injection/dist/aurelia-dependency-injection.d.ts#dcb53d40d128f5ff89c6bafa587128583529bd68",
    "aurelia-event-aggregator": "github:aurelia/event-aggregator/dist/aurelia-event-aggregator.d.ts#7a38c51dc9082175461e2d0b21a4c0a9242a8925",
    "aurelia-fetch-client": "github:aurelia/fetch-client/dist/aurelia-fetch-client.d.ts#a97fa7b9484cd78d986b11e537394400c99d02fe",
    "aurelia-framework": "github:aurelia/framework/dist/aurelia-framework.d.ts#e008c4a98147ae39556892a69e5c165947e293a7",
    "aurelia-history": "github:aurelia/history/dist/aurelia-history.d.ts#21e1ecd279b5b6d7525103cf734318103aee5382",
    "aurelia-history-browser": "github:aurelia/history-browser/dist/aurelia-history-browser.d.ts#19e095308a414ab561d3c5b327fcbc756e60f457",
    "aurelia-loader": "github:aurelia/loader/dist/aurelia-loader.d.ts#5bc0bf9424946235bc6d63ce77f4a6b97b0b4742",
    "aurelia-logging": "github:aurelia/logging/dist/aurelia-logging.d.ts#62417b8db6b82ef9c4dfe09eeca5cef6714e3b40",
    "aurelia-logging-console": "github:aurelia/logging-console/dist/aurelia-logging-console.d.ts#a82125fb35a1efc6372c40b7cd5813cfbda1eb11",
    "aurelia-metadata": "github:aurelia/metadata/dist/aurelia-metadata.d.ts#96c4c332fe4669e11b7570d3e8996cced9cf9042",
    "aurelia-pal": "github:aurelia/pal/dist/aurelia-pal.d.ts#adc7e905abf4f76d1c71a19f740cb6bb45d5842e",
    "aurelia-pal-browser": "github:aurelia/pal-browser/dist/aurelia-pal-browser.d.ts#ce3451eeeb2feb2c62ec30ec3f6a0122b4209282",
    "aurelia-path": "github:aurelia/path/dist/aurelia-path.d.ts#762d6dd77200672080e6a24e6db9ab37b0dc6137",
    "aurelia-polyfills": "github:aurelia/polyfills/dist/aurelia-polyfills.d.ts#e97d36f958436057ff277c00ce58a0edf42adfed",
    "aurelia-route-recognizer": "github:aurelia/route-recognizer/dist/aurelia-route-recognizer.d.ts#2c89fa3ffd739262cc8f901514f314a25f21c9c1",
    "aurelia-router": "github:aurelia/router/dist/aurelia-router.d.ts#39f05b6c85925829baa8be1256fc9ee9430e5854",
    "aurelia-task-queue": "github:aurelia/task-queue/dist/aurelia-task-queue.d.ts#18ac85b517430a3ad8a390cc6bb114abad499bb1",
    "aurelia-templating": "github:aurelia/templating/dist/aurelia-templating.d.ts#aad25d550f316ac2d7cac29c330059897c7d15bd",
    "aurelia-templating-binding": "github:aurelia/templating-binding/dist/aurelia-templating-binding.d.ts#f90d1082b0aa3be71c23e26c1e152b22593a15b5",
    "aurelia-templating-resources": "github:aurelia/templating-resources/dist/aurelia-templating-resources.d.ts#98f81efd2d7270742bfaa1f3c37d8a71a3936172",
    "aurelia-templating-router": "github:aurelia/templating-router/dist/aurelia-templating-router.d.ts#68460e0398f896c5883be81588bdd5f3855f05c3"
  }
}

最后,通过 运行 typings install 从命令行安装类型。

我包含了分步说明,因为这是一件棘手的事情,copy/paste-able 答案通常很有帮助。如以上评论所述,有关此更改的更多信息可在以下博客 post 中找到:http://blog.durandal.io/2016/06/10/where-did-my-typescript-go/