相关疑难解决方法(0)

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

我想要我的文件总是由我的项目的根目录而不是相对于当前模块.

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

express = require('../../')
Run Code Online (Sandbox Code Playgroud)

这真是糟糕的IMO.想象一下,我想把我的所有例子都放在根目录上,只有一个级别.这是不可能的,因为我必须在每个示例中更新超过30个示例和多次.对此:

express = require('../')
Run Code Online (Sandbox Code Playgroud)

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

任何帮助表示赞赏,谢谢

更新2

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

更新3

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

require node.js

220
推荐指数
19
解决办法
16万
查看次数

.js 和 .mjs 文件有什么区别?

我已经开始在一个基于 Node.js 的现有项目上工作。我只是想了解执行流程,在那里我遇到了一些*.mjs文件。我搜索了网络,发现这些是基于模块的 JS 文件。

我想知道它与*.js文件有什么不同(它有什么好处)?

javascript node.js mjs

103
推荐指数
3
解决办法
6万
查看次数

NodeJS - 将相对路径转换为绝对路径

在我的文件系统中,我的工作目录在这里:

C:\ TEMP\A\B\C\d

在b\bb下有文件:tmp.txt

C:\ TEMP\A\B\BB\tmp.txt

如果我想从我的工作目录转到这个文件,我将使用这个路径:

"../../bb/tmp.txt"
Run Code Online (Sandbox Code Playgroud)

如果文件不存在,我想记录完整路径并告诉用户:
"文件C:\ temp\a\b\bb\tmp.txt不存在".

我的问题:

我需要一些功能转换的相对路径: "../../bb/tmp.txt"绝对: "C:\ A\B\BB\tmp.txt\TEMP"

在我的代码中它应该是这样的:

console.log("The file" + convertToAbs("../../bb/tmp.txt") + " is not exist")
Run Code Online (Sandbox Code Playgroud)

javascript relative-path absolute-path node.js

41
推荐指数
2
解决办法
4万
查看次数

如何让节点子路径导入智能感知工作

最近,我开始在我的节点项目中使用子路径导入,主要用于我的实用程序目录。它让我从

const { promptMessage } = require('../../../../utils/promptMessage.js');
Run Code Online (Sandbox Code Playgroud)

const { promptMessage } = require('#utils/promptMessage.js');
Run Code Online (Sandbox Code Playgroud)

然而,我遇到的问题是我的智能感知不再工作。我在 jsconfig.json 中发现了一些东西,但这些似乎只适用于 import 语句,而不适用于 require()。有没有办法通过子路径导入获得智能感知?

intellisense node.js visual-studio-code

11
推荐指数
1
解决办法
2225
查看次数

在 NodeJS 中使用绝对路径导入 ES6 模块而不使用 Babel/Webpack

我有一个普通的旧 NodeJS 项目(使用 Typescript),我真的很难找出如何为本地文件执行 ES6 导入,而不必一直执行“../../../foo/bar”。

有很多类似的问题,但似乎都围绕着我没有使用的 babel/Webpack 展开。

如果我执行以下操作:

import foo from `/bar`
Run Code Online (Sandbox Code Playgroud)

它在我 PC 的根文件夹(例如 c:/bar)中查找它并失败。

我曾尝试使用 .env 文件并将 NODE_PATH 设置为各种铰链(“/”、“.”等),但没有运气。我也试过在我的 package.json 中设置“type: 'module'”,我的 tsconfig.json 文件有 {"baseUrl": "."}

所以我想我已经尝试了我能找到的所有答案。我只是在错误的组合中使用它们还是解决方案有所不同?

javascript node.js node-modules typescript es6-modules

8
推荐指数
3
解决办法
3045
查看次数

在带有 ES 模块的 Node.js 中使用相对路径导入

过去,app-module-path每当我想在 Node.js 应用程序中使用相对路径时,我都会使用它。如果我通过该格式使用 ES 模块.mjs,如何在某个目录路径变为相对路径的情况下具有相同的功能?

以另一种方式,我是否能够为目录分配一个别名,以便所有相对路径都相对于该别名,就像./路径的别名相对于当前目录一样。

node.js es6-modules mjs

5
推荐指数
1
解决办法
2万
查看次数