![](/img/trans.png)
[英]How to use NPM and install packages inside Visual Studio 2017?
[英]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 編譯你的顫振應用程序嗎?
你打算為Android編譯嗎?
然后是Android JS 、 Flutter_liquidcore 、 Interactive_WebView。
這實際上取決於您期望應用程序編譯成什么。
但不要指望原生應用體驗......
Tl:Dr:使用 WebView 或運行 Node\/Deno\/SpiderNode 子進程。
讓我回答你的問題的標題; 您將不得不將其包裝在 webview 或 node.js 子進程中,這些子進程可以使用 DBUS 之類的東西通過 IPC 進行通信。 這是截至 2021 年的尖端硬實驗技術。
如果是您自己的包,請考慮將其翻譯為 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.