簡體   English   中英

"如何在 dart 代碼中使用 npm 包?"

[英]How to use npm packages inside dart code?

我有一個在 Dart 編程語言上運行的顫振應用程序。 我已經發布了一個 npm 包,我想在我的顫振應用程序中使用它。 有什么辦法可以在 dart 中使用現有的 npm 包,或者以某種方式自動將 npm 包轉換為 dart 包?

"

Dart 和 Javascript 是不同的編程語言。 雖然可以將你的 lib 從 js 轉換為 dart,但它並不容易實現,也不可維護,而且很可能無法推廣。

除非您對這兩種語言及其限制感到滿意,否則您不應該嘗試將 NPM 包轉換為某些 Dart 代碼,除非您別無選擇。

我建議你改用 Dart 重寫 NPM 包。

備注:此答案基於您不想將 JS 代碼集成到 webview 中但實際上使用 Dart VM 中的代碼的假設。

這真的取決於你要做什么,

你正在為 web 編譯你的顫振應用程序嗎?

Dart 的 JS 庫可能是您正在尋找的...

你打算為Android編譯嗎?

然后是Android JSFlutter_liquidcoreInteractive_WebView。

這實際上取決於您期望應用程序編譯成什么。

但不要指望原生應用體驗......

Tl:Dr:使用 WebView 或運行 Node\/Deno\/SpiderNode 子進程。


讓我回答你的問題的標題; 您將不得不將其包裝在 webview 或 node.js 子進程中,這些子進程可以使用 DBUS 之類的東西通過 IPC 進行通信。 這是截至 2021 年的尖端硬實驗技術。

  • 如果它是一個小的我們將測試的包,你可以 babel 將它轉換為 Dart 並自動運行測試。<\/li>
  • 如果是像 Nuxt 這樣的大包,算了,還是放到 WebView 里。<\/li><\/ul>

    如果是您自己的包,請考慮將其翻譯為 Dart,然后再編譯為 JavaScript。 從 Dart 到可讀的 Node\/ES2021 很簡單。

    但是你真的想在所有事情上都使用 Dart 嗎? Dart 社區會在 5 到 80 年后像 Trois、Vue、WebXR 打字稿社區一樣強大嗎?

    我的建議是將 Dart 用於它的好處,即客戶端 JavaScript。 並使用可以從 TypeScript 轉換為 Dart 或 webview 的經過良好測試的包。

    你可以使用粘合子進程來運行 node\/deno\/spidernode 嗎? 看到 Termux F-Droid 崩潰,如果你想在最新版本的 Termux 上運行節點服務器,你不能使用 Google Play 商店,但是 F-Droid。 基本上,JIT 會讓你的 App Store 審批過程變慢,但他們只能從政策角度禁止它,而不是從技術角度。 您不應使用 npm install,而應將已安裝的模塊與已發布的應用程序構建捆綁在一起。

    在像 PWA 和 Spectre 這樣的 Fuku 原生世界中,JIT 的棄用如何發揮作用? 從安全的角度來看,部署到 Kotlin\/Swift 是一種將編譯器補丁發生的責任外包出去的狹隘方式,你應該每月至少構建一個,或者離開公司。 從隱私的角度來看,握手和隱私保護對 PWA 的影響將與二進制應用程序一樣難。

我們將一個相當大的 js 庫轉換為 dart(手動),這非常容易,因為這兩種語言非常相似。

"

暫無
暫無

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

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