簡體   English   中英

使用 webpack 為瀏覽器打包一個 node 應用程序

[英]Package a node app for the browser using webpack

所以這可能很幼稚,但是我可以在瀏覽器中運行僅節點樣式的應用程序嗎? 我已經看到了前端的東西。 我已經看到了后端的東西。 我想在瀏覽器中運行https://github.com/lapwinglabs/x-ray並做一些快速而骯臟的事情(這段代碼可能並不完美)

$(document).ready(function() {
  var phantom = require('x-ray-phantom');
  var Xray = require('x-ray');

  var x = Xray()
    .driver(phantom());

  x('http://google.com', 'body')(function(err, str) {
    $( "body" ).replaceWith( "str" );
  });
});

盡管沒有 iframe,但要完成整個站點的傳遞。 目的是讓我可以以一種全球性的方式在公司內部資產上重寫 CSS。 我將能夠只傳遞一個 url,頁面就會顯示出來。 如果我有自定義 css,那么它將處於活動狀態。 我仍然需要解決身份驗證問題,但此時此刻我並不擔心。

我過去曾將 X 射線與 express 一起使用,它的作用就像一個魅力。 在這種情況下,盡管我喜歡 Laravel 並希望在其中支持我的應用程序。

最新的 Laravel 有“mix”,一個 webpack 前端。 它非常適合前端資產。 如果我嘗試 webpack x-ray,我會遇到一系列問題,例如:

找不到模塊:錯誤:無法解析 yadayadayada

所以你可以像這樣設置導出:

module.exports.node = {
    fs: 'empty',
    net: 'empty',
    tls: 'empty'
};

雖然這修復了模塊錯誤,但我覺得我需要這些東西。 在瀏覽器中我得到:

未捕獲的錯誤:找不到模塊“child_process”

我有一種感覺,這樣的事情不應該起作用,但我希望我錯了。

簡單的答案是:您不能在瀏覽器中使用 Node 內置模塊,如fsnet ,因此也不能使用使用它們的模塊。

您可以像使用node選項一樣將它們清空,但是依賴它們的模塊出於某種原因使用它們並且您會破壞它們,除非您確切地知道使用內置模塊的部分不會結束在您的應用程序中,或者至少您沒有使用它。

在您的情況下,首先它抱怨fs ,這在瀏覽器中顯然沒有意義,因為您無權訪問文件系統。 然后它抱怨child_process ,所以它在模塊中的某個地方產生進程,但你也不能在瀏覽器中這樣做,清空它很可能會破壞模塊的功能,所以你需要尋找另一個模塊,可以在瀏覽器中使用。

暫無
暫無

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

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