簡體   English   中英

從全局瀏覽器范圍訪問CommonJS庫中定義的變量

[英]Access a variable defined in a CommonJS library from the global browser scope

我有一個“瀏覽器化”庫,它定義了一些React組件,我想從HTML頁面(從Rails應用程序提供)中加載這些組件,然后實例化React組件,這些組件由Rails放入頁面中的一些數據提供。

(總的來說是:我們有一個TurboLinks應用程序,我們希望將某些React組件用於非常特定的部件,需要更多的反應性。
因此,Rails頁面將同時加載React運行時和所需的應用程序組件庫,然后生成最少的原始JS以根據需要實例化React組件)

我發現的所有方法都是將外部libs變量公開給我的 lib的方法,但是我想將我的變量公開給全局瀏覽器范圍。

我最終以一種非常丑陋的方式( window.Stuff = Stuff; )直接從.jsx源文件中導出了類,但是我覺得這段代碼在聞...

對實現這種目標的更好方法有何建議?

公開瀏覽器捆綁中的模塊,例如:

browserify()
  .require('./whatever', {expose: 'whatever'})

然后從Rails頁面JS:

require('whatever');

要么:

創建一個獨立的browserify軟件包,如下所示:

browserify('./entry', {standalone: 'something'})

entry.js

module.exports = {
  whatever: require('./whatever')
};

然后從Rails頁面JS:

window.something.whatever;

暫無
暫無

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

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