在node_module
内手动创建目录并在那里放置一些模块是否可以?
例如,我可能想在models
内创建一个名为node_modules
的目录,并将我的模型放在那里,所以我可以做
var Person = require("models/person");
我知道它运作良好,但如果我这样做,它被认为是一种不好的做法吗?
答案 0 :(得分:4)
当然,您可以将代码放在项目中的任何位置,这里有几个原因我没有将应用程序代码放在该文件夹中:
node_modules
文件夹视为不受我控制并在其他地方获取的只读第三方引用,以及我可以轻松重新创建的内容,假设当时可以使用NPM存储库。 models
的顶级文件夹,而不是将其隐藏在我未编写的代码中。 models
文件夹与顶级文件夹中的任何其他内容都不冲突。 唯一的例外是共享私有包...但是由于它们是共享的,我不会将它们视为我将作为应用程序的一部分进行编辑的代码。它们将作为NPM流程的一部分安装。
作为一个例子,我现在正在进行的项目结构如下:
+ public
- JavaScript
- styles
+ models
+ views
+ routes
+ services
+ node_modules
答案 1 :(得分:0)
虽然是一个主观的答案,但我不认为这是不好的做法。实际上,我通常以这种方式将代码分成模块,我不想在npm上,并且真的不值得在github上使用私有仓库。但是,使用它们就好像它们是“已发布的模块”一样。