为自定义模块使用 node_modules 文件夹
Using node_modules folder for custom modules
最近我开始项目这个结构在哪里:
- app.js <- 初始化脚本,它将启动 lib/index.js
- node_modules <- 从 npm 获取的模块
- 库
- index.js
- 资源 - 系统中实体的一些代码
- node_modules - 系统中使用的本地模块(不是来自 npm)
您如何看待将名为 node_modules 的文件夹用于不是从 npm 获取的本地代码?
唯一的好处是,当从资源中请求模块时,您不必使用相对路径。
不利的是,有许多脚本(jshint、nodemon、..)忽略了这些文件夹,而且您还必须在 .gitignore
中允许该文件夹
正是出于您所描述的原因,我将其称为不良做法。最终有些东西会停止工作,需要很长时间才能弄清楚原因。
如果您必须解决节点中的相对路径问题,我会使用支持的解决方案,即使它不理想,即 NODE_PATH 环境变量
NODE_PATH=path\to\program node myprogram.js
关于备选方案的讨论很好here on github
最近我开始项目这个结构在哪里:
- app.js <- 初始化脚本,它将启动 lib/index.js
- node_modules <- 从 npm 获取的模块
- 库
- index.js
- 资源 - 系统中实体的一些代码
- node_modules - 系统中使用的本地模块(不是来自 npm)
您如何看待将名为 node_modules 的文件夹用于不是从 npm 获取的本地代码?
唯一的好处是,当从资源中请求模块时,您不必使用相对路径。
不利的是,有许多脚本(jshint、nodemon、..)忽略了这些文件夹,而且您还必须在 .gitignore
中允许该文件夹正是出于您所描述的原因,我将其称为不良做法。最终有些东西会停止工作,需要很长时间才能弄清楚原因。
如果您必须解决节点中的相对路径问题,我会使用支持的解决方案,即使它不理想,即 NODE_PATH 环境变量
NODE_PATH=path\to\program node myprogram.js
关于备选方案的讨论很好here on github