javascript - Typescript 设置 w/Meteor 1.5 - 找不到模块 Meteor/meteor

标签 javascript typescript meteor

我关注了the blog post但这没有用。这是我的提交:https://github.com/Falieson/react15-meteor1.5/commit/b0c5ccd4f940d980a227789e151c9b1ffb8f71cf

错误

$ meteor
[[[[[ ~/Private/ReactMeteorExample ]]]]]
=> Started proxy.
client/index.tsx (2, 24): Cannot find module 'meteor/meteor'.
=> Started MongoDB.
=> Started your app.

已安装

$ meteor add barbatus:typescript
$ meteor npm install --save @types/meteor @types/react

tsconfig.json

 "compilerOptions": {
    "allowJs": false,
    "alwaysStrict": true,
    "jsx": "react",
    "module": "commonjs",
    "moduleResolution": "node",
    "noImplicitAny": false,
    "sourceMap": true,
    "strictNullChecks": false,
    "target": "es5",
    "types": [
      "meteor-typings"
    ]    

附加问题:类型应该是开发依赖项吗?

最佳答案

"types" tsconfig 文件中的 部分应该是不必要的,因为您没有meteor-typings 目录(“meteor-typings”是一种旧的处理方式)。

作为@types套餐只有.d.ts文件无论它们是标准依赖项还是开发依赖项都无关紧要。就我个人而言,我会将它们保留为非开发人员。

要解决您遇到的问题,请在顶层添加一个名为 typings.d.ts 的文件。并在其中添加对您要引用的包的引用,例如: /// <reference types="@types/meteor" />

您可能需要添加 react 类型,或者由于 jsx = React 定义,它们可能会自动添加,但在我添加上述内容后,它似乎运行没有任何错误。

typescript 文档表明 @types文件应该自动包含,但我不知道为什么不包含。当我删除上面的“类型”时,它们没有被拾取。

另一种解决方案是在 tsconfig.json 文件中显式指定类型,例如: ... "target": "es5", "types": [ "meteor" ]

以下是 TS 文档的相关部分:https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#types-typeroots-and-types 本节首先说“默认情况下,所有可见的“@types”包都包含在您的编译中。”但继续解释如何在 tsconfig.json 中配置“typeRoots”和“types”文件。

关于javascript - Typescript 设置 w/Meteor 1.5 - 找不到模块 Meteor/meteor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45442743/

相关文章:

javascript - 数据表破坏问题

javascript - Node.js中如何一一下载文件?

javascript - javascript 是否有一种在对象中设置字段的简写方式?

typescript - Typescript 中没有对泛型进行编译检查?

javascript - 跨域 AJAX/Javascript - 人为地使用 sessionid

typescript - 用 typescript 定义原型(prototype)函数

node.js - 使用 ASP.Net Core 应用程序填充 Angular 上的下拉列表时出现错误 TS2717

coffeescript - 你如何在 Meteor 的客户端启动时使用全局 Coffeescript 变量?

node.js - Meteor:ReferenceError:IRC 未定义

javascript - Meteor js .allow 列表未显示