gpt4 book ai didi

node.js - 为 require() 配置多个路径

转载 作者:太空宇宙 更新时间:2023-11-04 01:13:16 26 4
gpt4 key购买 nike

如何为require配置多个路径?

我有以下结构:

application
|-server
| |-main.js
| |-myClass.js
| |-myClass.js
| |-implementationClass.js
|-common
| |-myOtherClass.js
| |-anotherClass.js
| |-yetAnotherClass.js
|-client
| |-aClientClass.js
| |-anotherClientClass.js
| |-implementationClass.js

我希望能够做这样的事情:

require('myClass');
require('myOtherClass');

如何配置多路径?当前使用 require.paths 给我一个错误:错误:require.paths 已删除。

我想保留此结构,因为我的应用程序必须提供共享的静态 .js 文件,并且我想避免共享服务器端 .js 文件。

此外,这些文件在客户端上使用了 require() 函数,该函数模拟了 node.js require(),并且我不想使用相对路径。

问题是,当我调用 require('anotherClass') 时,它必须在客户端和服务器上工作。因此,使用相对路径可以工作,但我还有 require('implementationClass') ,它返回客户端实现或服务器实现,当从 common 类调用它们时,此方法将失败。

最佳答案

要求子模块的最佳实践是使用相对路径:

require('./server/myClass');
require('./common/myOtherClass');

如果您使用requirejs,您可以为客户端配置别名:

require.config({
baseUrl: "http://example.com/static/",
paths: {
"myClass": "./server/myClass",
"myOtherClass": "./common/myOtherClass"
}
});

我确实建议执行类似上述的操作,但如果您确实希望能够在全局范围内要求它们,您可以在启动应用程序之前设置或修改 NODE_PATH 环境变量。 require.paths 已被删除,因为它只会引起问题。

关于node.js - 为 require() 配置多个路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14126453/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com