Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 覆盖要求从根开始并检查节点模块,而不更改它';姓名_Javascript_Node.js_Webpack_Dependencies_Require - Fatal编程技术网

Javascript 覆盖要求从根开始并检查节点模块,而不更改它';姓名

Javascript 覆盖要求从根开始并检查节点模块,而不更改它';姓名,javascript,node.js,webpack,dependencies,require,Javascript,Node.js,Webpack,Dependencies,Require,我正在尝试共享我的客户机和服务器代码,我想要一种整洁的方式来要求我的依赖项 我目前使用webpack作为构建工具,并将其设置为解析到我的assets/js文件夹,因此我对客户端的依赖关系如下所示: require('validators/login.js'); 我想在整个服务器上共享完全相同的代码,但我不想在其中加入if语句来检查是服务器还是客户端在做需要的事情,这样我就可以像 if server rootRequire.. else require 我希望服务器像客户端一样使用re

我正在尝试共享我的客户机和服务器代码,我想要一种整洁的方式来要求我的依赖项

我目前使用webpack作为构建工具,并将其设置为解析到我的assets/js文件夹,因此我对客户端的依赖关系如下所示:

require('validators/login.js');
我想在整个服务器上共享完全相同的代码,但我不想在其中加入if语句来检查是服务器还是客户端在做需要的事情,这样我就可以像

if server
  rootRequire..
else
  require
我希望服务器像客户端一样使用require并从根目录开始,但如果它不返回结果,我也不希望剥夺它搜索node_modules文件夹的功能

我还希望在不将所有代码放入node_modules文件夹的情况下完成此操作


有人对如何正确地覆盖require有什么好的建议吗?我读过大多数黑客解决方案,比如使用符号链接或将东西放在node_模块中,我不想寻找这些答案,我想要的是干净的,并且实际上需要正确的覆盖

我想我已经想出了一个我相当满意的解决方案,我想我会与任何需要答案的人分享

var module = require('module');
var baseRequire = module.prototype.require;

module.prototype.require = function()
{
    // Add any extra paths here...
    var extraPaths = [
        __dirname
    ];

    for (var i = 0, len = extraPaths.length; i < len; i++) {
        if (this.paths.indexOf(extraPaths[i]) == -1) {
            this.paths.push(extraPaths[i])
        }
    }

    return baseRequire.apply(this, arguments);
};
var模块=需要('module');
var baseRequire=module.prototype.require;
module.prototype.require=函数()
{
//在此处添加任何额外路径。。。
变量外部路径=[
__肮脏的
];
for(var i=0,len=extrapath.length;i
我想我已经想出了一个我相当满意的解决方案,我想我会与任何需要答案的人分享

var module = require('module');
var baseRequire = module.prototype.require;

module.prototype.require = function()
{
    // Add any extra paths here...
    var extraPaths = [
        __dirname
    ];

    for (var i = 0, len = extraPaths.length; i < len; i++) {
        if (this.paths.indexOf(extraPaths[i]) == -1) {
            this.paths.push(extraPaths[i])
        }
    }

    return baseRequire.apply(this, arguments);
};
var模块=需要('module');
var baseRequire=module.prototype.require;
module.prototype.require=函数()
{
//在此处添加任何额外路径。。。
变量外部路径=[
__肮脏的
];
for(var i=0,len=extrapath.length;i