簡體   English   中英

Visual Studio Code、NodeJS 和 require

[英]Visual Studio Code, NodeJS and require

我安裝了 Visual Studio Code 並想使用 TypeScript 編寫 NodeJS。 所以我創建了非常基本的應用程序,我收到錯誤消息:

Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.ts(2580)

執行提到的npm命令不能解決問題。 我已經丟失了我所關注、閱讀的鏈接牆,要么不適用於我,要么沒有解決問題,要么已經過時等等:

這個最接近:
https://www.section.io/engineering-education/how-to-use-typescript-with-nodejs/

我運行了這些命令:
npm i --save-dev @types/node
npm install -g typescript
npm install -D typescript

只是為了測試我將配置文件tsconfig.json替換為:

{
  "compilerOptions": {                        
    "target": "es6",                               
    "module": "commonjs",                           
    "outDir": "./dist",                             
    "rootDir": "./src",                             
    "strict": true,
    "moduleResolution": "node",
    "esModuleInterop": true,                       
  },
  "exclude":[
    "./node_modules"
  ]
}

我將我的.ts文件移動到項目根文件夾的src文件夾,並創建了dest文件夾。 我重新啟動了應用程序,什么都沒有。 我尋找了可能有幫助的擴展,但一無所獲。

我知道我不能只在 TypeScript 中“要求”,因為它想檢查函數是否確實存在,這與 JavaScript 不同。 但是我如何將 TypeScript 代碼編譯成 JavaScript 然后運行它呢? 導致問題的行是文件主題中的三行。

const http = require('http');
const crypto = require('crypto');
const colors = require('colors');

編輯:
declare function require(name : string); 修復了問題。 但是 require('crypto') 拋出:
lib.dom.d.ts(18699, 13): 'crypto' was also declared here.

老實說,我不知道究竟是什么導致了這個問題,但我猜是一些配置被破壞了。

有時,一個簡單的方法就是重新開始:嘗試創建一個新項目並僅導入您需要的內容。

  • 如果可行,您應該繼續在“新項目”上進行開發。 這有時不是一種選擇,但它可能是解決這些類型問題的最簡單方法。

  • 如果它不起作用,或者開始一個新項目不是一種選擇,你可以嘗試在線查找並最終在 Stack Overflow 上發布答案,如果結果不滿足你,但你也可以嘗試開始“更多新鮮”通過重新安裝 node/typescipt & Co.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM