[英]How to import an npm module that has a Typescript main file in Typescript?
我無法弄清楚導入Typescript npm模塊的正確方法是什么。
這是我試圖這樣做的方式:
module package.json
{
"name": "my-module",
"main": "src/myModule.ts"
}
module src / myModule.ts
export module MyModule {
// Code inside
}
使用npm模塊的代碼
import { MyModule } from 'my-module'; // Doesn't work
import { MyModule } = require('my-module'); // Doesn't work.
該模塊作為依賴項安裝在package.json中,例如我可以做
import { MyModule } from '../node_modules/my-module/src/myModule.ts';
但顯然這並不好。 我想要的是一種只導入主模塊文件中的任何導出的方法,但似乎不可能。
package.json中的'main'僅對webpack或angular-cli的構建工具等打包工具有用。 它用於根據用戶的需求選擇不同的捆綁包:ES6,ES5,UMD ......
TypeScript忽略了這一點。 您需要指定所需的文件,就像您引用自己的項目一樣:
import { MyModule } from 'my-module/src/myModule';
像Angular這樣的其他庫是創建一個桶,一個通常稱為'index.ts'或'index.d.ts'的文件,它可以導入和導出庫中的所有類型。
這樣做的好處是,如果在my-module的根目錄中創建index.d.ts文件:
export { MyModule } from './src/myModule';
// other exports
你可以這樣做:
import {MyModule} from 'my-module'
作為打字稿,從文件夾導入時,會自動使用index.ts
或index.d.ts
文件。
您應該使用“types”屬性而不是使用typescript模塊的“main”屬性。 TypeScript如何解析模塊
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.