小编how*_*d_9的帖子

如何使用项目根目录中的文件路径在 NodeJS 中导入 JavaScript 文件?(而不是相对文件路径)

问题:

\n

如何使用项目根目录中的文件路径在 NodeJS 中导入 JavaScript 文件?(而不是相对文件路径)

\n

换句话说,我的团队正在尝试从语法样式 A过渡到语法样式 B(如下所示):

\n

语法风格A

\n
const source = require(\'../../../../../../source.js\');\n
Run Code Online (Sandbox Code Playgroud)\n

语法风格 B

\n
const source = require(\'src/source.js\'); // "src" is a direct subfolder of the project root\n
Run Code Online (Sandbox Code Playgroud)\n

我已经审阅了很多关于这个主题的帖子,但没有一个能够满足我的项目的要求......

\n
\n

项目要求:

\n
    \n
  • 要求#1:没有外部包(例如 Babel.js 或 Webpack),因为磁盘空间有限。另外,我们无法使用“npm install”安装任何东西。
  • \n
  • 要求#2:JavaScript 文件应该能够使用“项目根”文件路径而不是相对文件路径导入另一个 JavaScript 文件。(这将避免诸如“../../../../../../../script.js”之类的长相对路径,这可能会变得难以管理。)
  • \n
  • 要求#3:在源代码中的任意位置右键单击导入的类应该会弹出一个上下文菜单,其中包含“转到声明”选项(这将我们直接带到导入的文件)。此外,将 JavaScript 文件移动到 IDE 中的其他文件夹应该会自动更新所有引用。我们可以使用任何IDE。
  • \n
  • 要求#4:为了采用一致的方式导入脚本,我们将使用 NodeJS 的“require”关键字进行导入(而不是 JavaScript 的“import”关键字)。
  • \n
\n
\n

设置:

\n

以下是我的设置。Package.json是由WebStorm生成的,我没有更改它。

\n …

javascript require commonjs node.js webstorm

15
推荐指数
1
解决办法
8518
查看次数

如何在多个 TypeScript 文件中导入相同的 npm 模块?

问题:

\n

每当我在多个 TypeScript 文件中导入相同的 npm 模块时,error TS2451: Cannot redeclare block-scoped variable \'os\'一旦运行 TypeScript 编译器,我就会收到错误“” tsc。我的项目设置如下所示。

\n

我正在使用 NodeJS v18.15.0。

\n
\n

设置:

\n

目录结构

\n
Project_Root\n\xe2\x94\x9c\xe2\x94\x80 main.ts\n\xe2\x94\x9c\xe2\x94\x80 worker.ts\n\xe2\x94\x9c\xe2\x94\x80 package.json\n\xe2\x94\x94\xe2\x94\x80 tsconfig.json\n
Run Code Online (Sandbox Code Playgroud)\n

主要.ts

\n
const worker = require(\'./worker\');\nconst os = require(\'os\');\n\nconsole.log(\'name = \' + worker.getName() );\nconsole.log(\'memory = \' + os.freemem() );\n
Run Code Online (Sandbox Code Playgroud)\n

工人.ts

\n
const os = require(\'os\');\n\nmodule.exports =\n    class worker {\n        static getName() : string { return "worker-" + os.freemem(); }\n    }\n
Run Code Online (Sandbox Code Playgroud)\n

包.json

\n
Project_Root\n\xe2\x94\x9c\xe2\x94\x80 …
Run Code Online (Sandbox Code Playgroud)

javascript commonjs node.js npm typescript

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

标签 统计

commonjs ×2

javascript ×2

node.js ×2

npm ×1

require ×1

typescript ×1

webstorm ×1