从“node_modules”以外的位置引用 NodeJS 库而不使用相对路径

Posted

技术标签:

【中文标题】从“node_modules”以外的位置引用 NodeJS 库而不使用相对路径【英文标题】:Reference NodeJS libs from locations other than "node_modules" without using relative path 【发布时间】:2017-10-16 17:43:27 【问题描述】:

假设我有 2 个用于 NodeJS 库的文件夹,即“node_modules”和“somename_modules”。后者是存储内部开发的专有库的文件夹。

我知道当我们使用“import”或“require”引用时,默认位置总是指向项目中“node_modules”文件夹所在的路径。

我的问题是,我们如何在“somename_modules”所在的位置添加另一个默认位置,以便当我们在 ES6 源代码中使用“import”或“require”引用时,它总是会检查来自“node_modules”和“somename_modules”?

例子:

import somefunc from 'somelib' //it will search in './node_modules/somelib' and './somename_modules/somelib'

【问题讨论】:

【参考方案1】:

我不认为,你可以这样做。

但是您可以在 package.js 中注册您的内部库/模块(指向 somename_modules 文件夹),以便在 npm install 完成时它们可以位于 node_modules 中。然后,import/require语句就可以正常工作了。

例如 可以说,您在 somename_modules 文件夹中有一个模块名称“mod1”。 IE: "/somename_modules/mod1"

在 package.json 中添加以下依赖项:

"dependencies": 
  "mod1": "file:/somename_modules/mod1",
,

在这种情况下,mod1 需要遵循 npm 结构,比如里面有一个 package.json 文件。

【讨论】:

我使用了 'file:./my-path' ("." after file:)

以上是关于从“node_modules”以外的位置引用 NodeJS 库而不使用相对路径的主要内容,如果未能解决你的问题,请参考以下文章

错误 npm failed with exit code 2 错误:命令失败:node_modules/.bin/vsce package --no-yarn

使用@sql spring boot test从资源文件夹以外的自定义位置读取.sql文件

vscode:Module ‘“xxx/node_modules/vue/dist/vue“‘ has no exported member ‘ref‘

如何为本地引用的节点模块指定 node_modules 文件夹

Ionic3:从 node_modules 导入 css 的最佳方式

报错:Error: EACCES: permission denied, rename ‘/usr/local/lib/node_modules/pnpm‘ -> ‘/usr/local/lib/no