我想要我的文件总是由我的项目的根目录而不是相对于当前模块.
例如,如果你看看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的特殊情况:如果一个字符串以$开头,那么它相对于项目的根文件夹.
任何帮助表示赞赏,谢谢
现在我正在使用require.js,它允许您以一种方式编写,并在客户端和服务器上运行.Require.js还允许您创建自定义路径.-«
现在我转到webpack + gulp,我使用enhanced-require来处理服务器端的模块.请参阅此处的基本原理:http://hackhat.com/p/110/module-loader-webpack-vs-requirejs-vs-browserify/
我已经开始在一个基于 Node.js 的现有项目上工作。我只是想了解执行流程,在那里我遇到了一些*.mjs文件。我搜索了网络,发现这些是基于模块的 JS 文件。
我想知道它与*.js文件有什么不同(它有什么好处)?
在我的文件系统中,我的工作目录在这里:
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) 最近,我开始在我的节点项目中使用子路径导入,主要用于我的实用程序目录。它让我从
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()。有没有办法通过子路径导入获得智能感知?
我有一个普通的旧 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": "."}
所以我想我已经尝试了我能找到的所有答案。我只是在错误的组合中使用它们还是解决方案有所不同?
过去,app-module-path每当我想在 Node.js 应用程序中使用相对路径时,我都会使用它。如果我通过该格式使用 ES 模块.mjs,如何在某个目录路径变为相对路径的情况下具有相同的功能?
以另一种方式,我是否能够为目录分配一个别名,以便所有相对路径都相对于该别名,就像./路径的别名相对于当前目录一样。
node.js ×6
javascript ×3
es6-modules ×2
mjs ×2
intellisense ×1
node-modules ×1
require ×1
typescript ×1