子文件夹中的 Node.js npm 依赖项
Posted
技术标签:
【中文标题】子文件夹中的 Node.js npm 依赖项【英文标题】:Node.js npm dependencies in subfolder 【发布时间】:2014-11-12 23:03:06 【问题描述】:我有一个使用 node-webkit 的项目。 node-webkit 允许使用 npm 包来开发桌面应用程序。我使用 grunt 来构建我的应用程序。
目前我的文件夹结构是这样的:
project root
node_modules/ (1)
package.json (1)
App/
node_modules/ (2)
package.json (2)
bower.json
bower_components/
...
controllers/
filters/
...
app.js
应用程序本身的 npm 依赖项保存在 App 文件夹中,但 building 项目的 dev 依赖项与应用程序源代码无关,所以我将它们保存在根文件夹内的 node_modules (1) 中。我也知道在 package.json 文件中可以表达依赖关系和 dev 依赖关系,正是出于这个原因。我宁愿在根目录中有一个 package.json 文件来表达所有依赖项,包括开发依赖项,但我宁愿在文件夹级别分离这些依赖项。
出现两个问题:
这是组织我的 npm 依赖项的好方法吗?如果是的话,很棒吗?如果不是,我希望:
有什么更好的方式来组织我的依赖项?是否可以指定 dev 依赖项进入文件夹 a,而“常规”依赖项进入文件夹 b?如果是这样,我该怎么做?
如果有人想知道,这就是我正在谈论的项目:
https://github.com/michahell/pinbored-webkit
[为清晰起见更新了文件夹结构以包含 app.js]
【问题讨论】:
为什么感谢你这么快就编辑我的问题@marc_s! 大部分工作都是由@mscdex 处理的——他在我能够修复之前得到了dependency
(而不是dependancy
)...
我 *&%$ 总是写错(和其他一些东西)。会小心的:)
@Michael 你找到解决方案了吗?我想使用和你一样的结构,在外面有开发依赖,在 App 文件夹里面有应用依赖,但我很犹豫要不要拆分我的package.json
你好@Jorn,不,我没有,我维护了 2 个 package.json 文件。我想我在 (main/dev) package.json 中有一个脚本,它执行 cd App && npm install,因此您只需执行一次 npm install。不过我还是不喜欢……如果你找到更好的解决方案,请告诉我!
【参考方案1】:
@Michael package.json 文件包含与该项目相关的所有依赖项。不需要多个包文件和多个 node_modules 文件夹。 但是你需要检查你的 App.js 文件在哪里!! 您的 App.js 、 package.json 必须在同一个文件夹中,除非已配置。
【讨论】:
谢谢,@anirudh,我已根据您的回答更新了我的问题。我的 app.js 在 /App 文件夹中,我想保持这种状态,所有应用程序特定的东西都在我的 /App 文件夹中! @Michael 我认为您现在不需要外部 package.json 和外部 node_module 文件夹! :) 我确实需要它,因为我正在使用 Grunt 构建我的 node-webkit 应用程序,而 grunt 需要 npm 依赖项(在我的情况下是开发依赖项)。【参考方案2】:为一个项目保留多个package.json
文件和多个node_module
目录是完全可以的。 如果您将部件视为单独的组件。
一个例子可能是,如果您有一个目录包含节点服务器,另一个目录包含一个 react 应用程序,第三个目录包含某种用 javascript 编写的部署脚本。
【讨论】:
以上是关于子文件夹中的 Node.js npm 依赖项的主要内容,如果未能解决你的问题,请参考以下文章
使用 Node 8.9.4 LTS 安装 Sails.js 依赖项时,NPM“ENOENT:没有此类文件或目录错误”
npm install:有没有办法忽略 package.json 中的特定依赖项
有没有办法从 .js 文件自动安装 node.js 依赖项?