[英]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 內置模塊,如fs
或net
,因此也不能使用使用它們的模塊。
您可以像使用node
選項一樣將它們清空,但是依賴它們的模塊出於某種原因使用它們並且您會破壞它們,除非您確切地知道使用內置模塊的部分不會結束在您的應用程序中,或者至少您沒有使用它。
在您的情況下,首先它抱怨fs
,這在瀏覽器中顯然沒有意義,因為您無權訪問文件系統。 然后它抱怨child_process
,所以它在模塊中的某個地方產生進程,但你也不能在瀏覽器中這樣做,清空它很可能會破壞模塊的功能,所以你需要尋找另一個模塊,可以在瀏覽器中使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.