0

我和我的同事的目標是在我們的Angular 2模板中完成代碼完成,如描述的in this gif無法讓tsserver-plugins在Atom或VSC中工作

因此,我們需要

tsserver-plugins

tslint-language-service@angular/language-service

因此我們嘗試:

npm install tsserver-plugins -g 
npm install angelozerr/tslint-language-service --save-dev 
npm install @angular/language-service --save-dev 

,我們添加了這個我們tsconfig.json > compilerOptions:

"plugins": [ 
    { "name": "tslint-language-service"}, 
    { "name": "@angular/language-service"} 
] 

因爲我無法弄清楚如何告訴Atom的打字稿插件使用tsserver-plugins代替tsserver,我砍死它重命名

/usr/local/bin/tsserver

/usr/local/bin/_tsserver

/usr/local/bin/tsserver-plugins

/usr/local/bin/tsserver

現在,我認爲它應該工作,但它沒有。

然後我重新啓動原子 - 沒有任何改變。 然後我重新啓動了我的電腦 - 沒有任何改變。

然後,我在本地和全局安裝了typescript @ next(2.3.0.dev ...)並重復了所有操作。

我的同事試圖讓它與Visual Studio Code一起工作,但沒有成功。我們做錯了什麼?

回答

0

起初tsserver-plugins需要tsserver它應該可以與任何TypeScript版本一起使用。它不是tsserver的分支。

tsserver-plugins包裝ts.createLanguageService加載plugins在您的tsconfig.json中聲明。

要做到這一點,該bin/tsserver-plugins

  • 負載在一個字符串
  • CONCAT的before-tsserver.jstypescript/lib/tsserver.js
  • typescript/lib/tsserver.js運行CONCAT爲節點模塊的結果。

要檢索typescript/lib/tsserver.js你有2種策略:

  • tsserver-plugins安裝在同一node_modulestypescript並獲得typescript/lib/tsserver.jsrequire(typescript/lib/tsserver.js)
  • tsserver-plugins沒有安裝在同一node_modulestypescript,使當您調用tsserver-plugins時,需要使用--typescriptDir參數設置TypeScript的路徑。

舉例來說,如果你有:

  • C:/ DIR1/node_modules/tsserver-插件
  • C:/ DIR2/node_modules /打字稿

您需要執行:

node C:/dir1/node_modules/tsserver-plugins/bin/tsserver-plugins --typescriptDir C:/dir2/node_modules/typescript 

而最後,tslint-language-service和需要在與TypeScript相同的node_modules文件夾中託管@angular/language-service