2017-08-01 107 views
0

我跟着the blog post,但沒有奏效。這是我的承諾:https://github.com/Falieson/react15-meteor1.5/commit/b0c5ccd4f940d980a227789e151c9b1ffb8f71cf打字機設置w /流星1.5 - 找不到模塊流星/流星

錯誤

$ 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

tsconfig文件中的"types"部分應該是不必要的,因爲您沒有meteor-typings目錄('meteor-typings'是舊的做事方式)。

由於@types軟件包僅爲.d.ts文件,因此無論它們是標準還是開發依賴項都無關緊要。就我個人而言,我會把它們作爲非開發者。

要解決你碰到了問題,在被稱爲typings.d.ts,並把它給你想要引用包的引用頂層添加一個文件,如: /// <reference types="@types/meteor" />

您可能需要添加反應類型,或者由於jsx = react定義它們可能會自動添加,但在添加上面的代碼後,它似乎無誤地運行。

打字稿文檔建議應自動包含@types文件,但我不知道它們爲什麼不是。當我刪除上面的「類型」時,他們沒有拿起。

另一種解決方案是在tsconfig.json文件,例如明確指定類型: ... "target": "es5", "types": [ "meteor" ]

這裏的TS文件的相關位:https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#types-typeroots-and-types 本節說開始「默認情況下所有可見「@類型「包包含在您的編譯中。'但繼續解釋如何在tsconfig.json文件中配置「typeRoots」和「類型」。