具有Meteor 1.5的打字稿设置 - 无法找到模块流星/流星

时间:2017-08-01 16:10:07

标签: 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"
    ]    

补充问题:打字是不是依赖关系?

1 个答案:

答案 0 :(得分:2)

tsconfig文件中的"types"部分应该是不必要的,因为你没有meteor-typings目录(' meteor-typings'是一种古老的做事方式)。

由于@types个包只是.d.ts个文件,因此无论它们是标准还是开发依赖项都不重要。就个人而言,我将他们留作非开发者。

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

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

打字稿文档建议自动包含@types个文件,但我不知道他们为什么不这样做。当我删除&#34;类型&#34;它们时,它们没有被拾取。上方。

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

这里是TS文档的相关位:https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#types-typeroots-and-types 本节首先说&#39;默认情况下,所有可见的“@types”包都包含在您的编辑中。&#39;但接着解释&#34; typeRoots&#34;和&#34;类型&#34;可以在tsconfig.json文件中配置。