javascript - 作为 npm 模块安装并访问本地文件夹

标签 javascript node.js module dependencies package.json

文件结构如下所示:

= (main-folder)
 - package.json
 - ...
 = server
  - index.js
  - ...
 = deploy-abc // new server
  = src
   - index.js
 = src
  - index.js
  - ...

我正在尝试将“deploy-abc”安装为主文件夹应用程序中的模块。所以,我跑了:yarn add "/var/www/main-folder/deploy-abc"。它安装正确,我可以看到 package.json 中列出的“deploy-abc”依赖项。

但是,当我尝试访问deploy-abc的导出对象时,出现 Node 错误错误:找不到模块“deploy-abc”。例如:在主文件夹中的某个文件中:

const deployAbc = require("deploy-abc");
console.log(deployAbc); // error

我哪里出错了?

最佳答案

根据 Node 文档:https://nodejs.org/api/modules.html#modules_loading_from_node_modules_folders

If the module identifier passed to require() is not a core module, and does not begin with '/', '../', or './', then Node.js starts at the parent directory of the current module, and adds /node_modules, and attempts to load the module from that location.

因此,鉴于您的模块现在位于主文件夹中,您如何需要它取决于相对位置。如果您需要从 /src/index.js 获取它,那么您将需要:

const deployAbc = require('../deploy-abc')

在这种情况下,您也不需要指定实际文件,因为它默认为 index.js。然而,如果入口文件是 dabc.js 或其他文件,您还需要在位置中指定它。

关于javascript - 作为 npm 模块安装并访问本地文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50155052/

相关文章:

javascript - 使用 discord.js 和 ytdl-core 播放音频文件

javascript - 在 Node js 应用程序内的 Postgres 查询中转义单引号

Python myro 模块导入错误

powershell - 如何管理多文件 Powershell 模块中脚本之间的依赖关系?

javascript - 使用 Javascript 根据 URL 哈希设置所选选项

javascript - 为什么我无法在控制台中访问这个全局变量?

javascript - 通过输入表单更改字体粗细值时的奇怪字体行为

javascript - Summernote - 插入带有 Angular Directive(指令)的模板

node.js - package.json 启动脚本,babel-node : not found on heroku deploy

java - 不同模块中的GAE/Java cron.xml相互覆盖?