2017-05-06 53 views
0

所以我是這方面的新手,事情是我正在嘗試編譯一個帶有graphql文件的Typescript項目(使用.graphql擴展名)。 它基於無服務器框架,所以編譯它我啓動了npm start,它在命令行中啓動了一個cd src/app && tsc使用graphql文件編譯Typescript時出錯

.ts文件引用.graphql文件是這樣的:

import SchemaDefinition from './schemaDefinition.graphql';

和錯誤是

數據/模式/ index.ts(2,30):錯誤TS2307:不能找到模塊'./schemaDefinition.graphql'。

我覺得這裏的問題是在tsc編譯,因爲它創建輸出目錄(../../built),但它沒有複製.graphql文件。這裏是我的tsconfig.json文件:

{ 
    "compilerOptions": { 
     "declaration": false, 
     "emitDecoratorMetadata": true, 
     "experimentalDecorators": true, 
     "target": "es5", 
     "lib": ["dom", "es6"], 
     "module": "commonjs", 
     "allowJs": true, 
     "moduleResolution": "node", 
     "noImplicitAny": false, 
     "removeComments": true, 
     "preserveConstEnums": true, 
     "rootDir": "./", 
     "outDir": "../../built", 
     "sourceMap": true, 
     "pretty": true, 
     "typeRoots": [ 
      "node_modules/@types" 
     ], 
     "types": [ 
      "@types/node", 
      "@types/graphql" 
     ], 
     "allowSyntheticDefaultImports": true 
     }, 
    "include": [ 
     "./*" 
    ], 
    "exclude": [ 
      "node_modules" 
    ] 
} 

我不知道如果我不得不做一些技巧來複制這些文件或將預編譯器步到.graphql文件轉換.ts文件,使用這樣的:GraphQL Code Generator

有什麼想法嗎?我堅持:S

回答

-1

所以事實證明,Typescript編譯器沒有將.graphql文件複製到輸出文件夾,我還沒有找到一種方法來做到這一點。

作爲解決方法,我將擴展名更改爲.graphql.ts,並將graphql代碼包裝在const內。我沒有得到語法,但它的工作原理。

1

假設graphql文件有一個JS擴展,使被處理,​​如果他們不出口任何東西,或沒有導入它們,你可以試試不建議

進口」 ./my-module.js 「;