为自定义模块使用 node_modules 文件夹

Posted

技术标签:

【中文标题】为自定义模块使用 node_modules 文件夹【英文标题】:Using node_modules folder for custom modules 【发布时间】:2016-02-12 21:23:26 【问题描述】:

最近我开始计划这个结构在哪里:

app.js node_modules 库 index.js 资源 - 系统中实体的一些代码 node_modules - 系统中使用的本地模块(不是来自 npm)

对于未从 npm 获取的本地代码,您如何看待使用名为 node_modules 的文件夹?

唯一的好处是,从资源中请求模块时,您不必使用相对路径。

消极的部分是,有很多脚本(jshint、nodemon、..)忽略了这些文件夹,而且你必须在 .gitignore 中也允许这个文件夹

【问题讨论】:

【参考方案1】:

出于您所描述的原因,我认为这是不好的做法。最终某些东西会停止工作,需要很长时间才能弄清楚原因。

如果您必须解决节点中的相对路径问题,我会选择支持的解决方案,即使它并不理想,即 NODE_PATH 环境变量

NODE_PATH=path\to\program node myprogram.js

关于替代选项的讨论很好here on github

【讨论】:

我刚刚意识到本地和公共模块的名称也可能发生冲突..

以上是关于为自定义模块使用 node_modules 文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何从 node_modules 文件夹导入 sass 主题模块

无法使用电子读取 /node_modules/bindings/bindings.js 处未定义的属性“模块”并安装串行端口

ReferenceError:进程未定义模块.../../../node_modules/graphql/jsutils/instanceOf.mjs

Node

快速删除node_modules文件夹

jQuery 没有在引导模块中定义