簡體   English   中英

如何將瀏覽器化的節點模塊集成到早午餐構建的應用程序中?

[英]How to integrate a browserified node module into brunch-built app?

前端開發人員的新功能,我正在嘗試通過早午餐構建基於主干的Webapp。 一切順利,直到我嘗試使用一個名為node-xmpp-client的節點模塊。 該模塊有一個瀏覽器版本: node-xmpp-browser.js在我的Google Chrome 瀏覽器中可以正常工作。

1-我試圖將此node-xmpp-browser.js添加到供應商目錄以使其捆綁到app.js中,但是在加載index.html頁面時,在我的js控制台中發生以下錯誤:

Uncaught TypeError: require.register is not a function Uncaught
TypeError: require.register is not a function Uncaught TypeError:
loaderPath.indexOf is not a function

2-然后,我嘗試將此腳本直接添加到我的index.html頁中(node-xmpp-client瀏覽器示例也是如此):

<!DOCTYPE html>
<html lang="en">
<head>
  <title>My WebUI</title>
  <link rel="stylesheet" type="text/css" href="app.css">
  <meta name="viewport" content="width=device-width" initial-    scale="1.0">
</head>
<body>
  <div class='root-view'></div>
  <script src="node-xmpp-browser.js"></script>
  <script src='vendor.js'> </script>
  <script src='templates.js'> </script>
  <script src='app.js'> </script>
  <script> require('initialize');  </script>
</body>
</html>

但是控制台再次抱怨:

Uncaught TypeError: require.register is not a function
Uncaught TypeError: require.register is not a function
Uncaught Error: Cannot find module 'initialize'

似乎與如何在瀏覽器化腳本和早午餐構建腳本中聲明模塊(通過require關鍵字)存在沖突?

將這樣的瀏覽器模塊包含到基於早午餐的應用程序中的正確方法是什么?

非常感謝您的寶貴時間,

皮埃爾

您需要捆綁在客戶端腳本中的require定義。 這是Brunch的默認設置,因此需要調整腳本標簽的順序,以便在require加載的任何腳本之前定義require ,或者您可以設置modules: definition: false在配置中為modules: definition: false

暫無
暫無

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

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