小编典典

如何使 node.js 需要绝对?(而不是相对)

all

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

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

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

这真是糟糕的国际海事组织。想象一下,我想把我所有的例子都离根更近一层。那是不可能的,因为我必须在每个示例中更新 30 多个示例并且多次更新。对此:

express = require('../')

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

任何帮助表示赞赏,谢谢

更新 2

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

更新 3

现在我转向 webpack + gulp 并使用增强的需求来处理服务器端的模块。请参阅此处的理由:http
://hackhat.com/p/110/module-loader-webpack-vs-requirejs-vs-
browserify/


阅读 90

收藏
2022-05-16

共1个答案

小编典典

这是我超过6个月的实际方式。我在项目中使用一个名为 node_modules
的文件夹作为我的根文件夹,这样它总是会从我称之为绝对要求的任何地方查找该文件夹:

  • 节点模块
    • 我的项目
    • index.js 我可以 require(“myProject/someFolder/hey.js”) 而不是 require(“./someFolder/hey.js”)
    • someFolder 包含 hey.js

当您嵌套在文件夹中时,这更有用,如果以绝对方式设置,更改文件位置的工作要少得多。我在整个应用程序中只使用了 2 个相对要求。

2022-05-16