文件结构如下所示:
= (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/