![](/img/trans.png)
[英]Typescript Node.js simplest setup doesn't work — error TS2307: Cannot find module 'fs'
[英]node.js with ES6 modules, Typescript and Winston: “error TS2307: Cannot find module 'winston'”
我的代碼是(在src/lib/logging.ts
中):
import * as logger from 'winston';
// ...
首先我做了:
$ npm install --save winston
它已按預期將其添加到dependencies
部分:
"dependencies": {
...
"winston": "^3.2.1",
...
}
但是當我啟動應用程序時,我收到以下錯誤:
src/lib/logging.ts:2:25 - 錯誤 TS2307:找不到模塊“winston”。
2 從'winston'導入*作為記錄器;
然后我嘗試了其他一些依賴項的工作:
$ npm install --save-dev @types/winston
npm WARN deprecated @types/winston@2.4.4: This is a stub types definition.
winston provides its own type definitions, so you do not need this installed.
這為devDependencies
添加了一個舊版本,這似乎沒用:
"devDependencies": {
...
"@types/winston": "^2.4.4",
...
}
當我啟動應用程序時,我得到與上面列出的相同的錯誤。
@HadiMir 提到的解決方案將起作用。 但是,由於您希望它與 ES6 一起使用,因此這里有一個示例 - Morgan 使用 ESM 進行日志記錄。
您還需要在 package.json 中提及“類型”作為模塊,以提及您將使用 ESM 導入樣式。 如果您不希望這樣做,替代方法是使用擴展名為“.mjs”的文件。
"type": "module",
由於您在 Node 中工作,因此要導入任何模塊/包,您必須使用以下語法
const winston = require('winston');
之后,您可以調用任何方法或使用 Winston 或您導入的任何其他模塊提供的任何屬性
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.