小编典典

如何使node.js要求绝对?(而不是亲戚)

node.js

我想始终通过项目的根目录而不是相对于当前模块来要求文件。

例如,如果您查看https://github.com/visionmedia/express/blob/2820f2227de0229c5d7f28009aa432f9f3a7b5f9/examples/downloads/app.js第6行,您将看到

express = require('../../')

这真是糟糕的IMO。想象一下,我只想将我所有的例子都更接近一个根。那将是不可能的,因为我将不得不在每个示例中多次更新30多个示例。对此:

express = require('../')

我的解决方案是为基于root的情况提供特殊情况:如果字符串以$开头,则它相对于项目的根文件夹。

任何帮助表示赞赏,谢谢

更新2

现在,我正在使用require.js,它允许您以一种方式编写并在客户端和服务器上均可使用。Require.js还允许您创建自定义路径。

更新3

现在,我移至webpack + gulp,并使用Enhanced-
require处理服务器端的模块。请参阅此处的基本原理:http : //hackhat.com/p/110/module-loader-
webpack-vs-requirejs-vs-browserify/


阅读 220

收藏
2020-07-07

共1个答案

小编典典

这是我六个月以上的实际工作方式。我在项目中使用名为node_modules的文件夹作为我的根文件夹,通过这种方式,它将始终在我称之为绝对需求的任何地方查找该文件夹:

  • node_modules
    • 我的项目
    • index.js我可以用require(“ myProject / someFolder / hey.js”)代替require(“ ./ someFolder / hey.js”)
    • 包含hey.js的someFolder

当您嵌套在文件夹中时,此功能将更为有用;如果以绝对方式进行设置,则更改文件位置的工作将大大减少。我在整个应用程序中只使用2个相对要求。

2020-07-07