簡體   English   中英

如何將 TypeScript 文件作為庫導入?

[英]How to import a TypeScript file as a library?

因此,我創建了一個名為 methlib 的個人“庫”,並將其作為 .ts 文件存儲在我的計算機上。 它里面有大量的類、接口、函數等,我使用了一堆,我喜歡放在一個地方。 現在我的問題是我想在另一個項目中使用我在 typescript 中制作的功能和東西(就像人們通常想要使用庫一樣),但我不知道如何。 在我將它翻譯成 typescript 之前,我可以將它包含在 HTML 文件中(通常只需進入我的主 web 目錄並獲取本地文件,以便我現在進行任何更改以使其立即生效)不知道該怎么辦。 我對任何術語也不太熟悉(完全),而且我對 typescript 和更高級的 javascript 或 web 開發完全不熟悉。 現在,當我嘗試從我的圖書館中獲取一些東西時,例如

import { Collider } from "Methlib/methlib"

使用我的 webpack 配置(我主要從模板中偷來並且不完全理解)設置為

const path = require('path');
module.exports = {
    entry: "./src/script.ts",
    output: {
        filename: "bundle.js",
        path: path.resolve(__dirname, 'dist')
    },
    resolve: {
        extensions: [".webpack.js", ".web.js", ".ts", ".js"],
        alias: {
            Methlib: "./../Methlib-js/"
        }
    },
    module: {
        rules: [{ test: /\.ts$/, loader: "ts-loader" }]
    }
}

具有類似的文件結構

<root>
 | Methlib-js
 | | methlib.ts
 | <project folder>
 | | node_modules
 | | src
 | | | script.ts
 | | webpack.config.js
 | | package.json
 | | package-lock.json

運行>node_modules\.bin\webpack給了我

ERROR in <root>\<project folder>\src\script.ts
./src/script.ts
[tsl] ERROR in <root>\<project folder>\src\script.ts(5,26)
      TS2307: Cannot find module 'Methlib/methlib' or its corresponding type declarations.

另外請注意整個事情,這只是為了讓我不必在不完全必要的地方透露我的確切文件結構。 我想澄清這實際上不是項目的一部分,只是我的文件結構的根。

您還需要為 ts 指定路徑映射

{
  "compilerOptions": {
    "baseUrl": ".", // This must be specified if "paths" is.
    "paths": {
      "Methlib": ["../Methlib-js/methlib.ts"] // This mapping is relative to "baseUrl"
    }
  }
}

復制

解決方案是在 webpack.config.js 文件中指定庫的完整絕對路徑,經過進一步測試,您似乎甚至不需要在 tsconfig.json 文件中包含路徑映射。

暫無
暫無

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

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