所以这可能是天真的,但我可以在浏览器中运行仅节点风格的应用程序吗?我看到了前端的东西。我已经看到了后端的东西。我想在浏览器中运行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。我只能传递一个网址,页面就会显示出来。如果我有自定义css,那么它将是活动的。我仍然需要努力工作,但在这个时刻我并不担心。
过去我曾使用过X光片,它就像一个魅力。在这种情况下,虽然我喜欢Laravel,并希望能够支持我的应用程序。
最新的Laravel有一个" mix",一个网络包前端。它适用于前端资产。如果我尝试使用x-ray进行网络包装,我会遇到一系列问题:
找不到模块:错误:无法解析yadayadayada
所以你可以设置这样的导出:
module.exports.node = {
fs: 'empty',
net: 'empty',
tls: 'empty'
};
虽然修复了模块错误,但我觉得我需要这些东西。在浏览器中我得到:
未捕获错误:无法找到模块" child_process"
我觉得这样的事情不应该奏效,但我希望我错了。
答案 0 :(得分:0)
简单的答案是:您不能在浏览器中使用net
或node
之类的Node内置模块,以及使用它们的模块。
您可以像使用fs
选项一样清空它们,但依赖它们的模块出于某种原因使用它们并且您会破坏它们,除非您确切知道使用构建的部分-in模块,不会在你的应用程序中结束,或者至少你没有使用它。
在您的情况下,首先它抱怨child_process
,这在浏览器中显然没有意义,因为您无法访问文件系统。然后它抱怨BEGIN
DELETE FROM table_X
WHERE id IN ( select person_id from table_1 where termination is true );
DELETE FROM table_Y
WHERE id IN ( select person_id from table_1 where termination is true );
END;
/
,所以在模块中它产生进程的某个地方,但你也不能在浏览器中这样做,并且清空它很可能会破坏模块的功能,所以你需要寻找另一个可以在浏览器中使用的模块。