使用 NPM 管理文件依赖项

Posted

技术标签:

【中文标题】使用 NPM 管理文件依赖项【英文标题】:Manage file dependencies with NPM 【发布时间】:2015-04-06 00:03:20 【问题描述】:

我正在与一个中型团队一起开发一个大型前端应用程序。到目前为止,我们一直在使用 requirejs 和 AMD 模块来管理我们约 500 个文件的项目。由于各种原因,我们最近决定迁移到 commonjs 并使用 NPM 作为我们的包管理器。这是我的问题:

如何将一个随机的、单独的框架文件(又名 jquery 插件)合并到我们的 package.json 中?

例如,我们使用这个随机jquery颜色选择器https://github.com/laktek/really-simple-color-picker/blob/master/jquery.colorPicker.min.js

但是 github 上的 repo 没有 package.json,所以使用 NPM 内置的 git awesomeness 是行不通的。那么我应该怎么做呢?我一直在尝试使用它的 'file:../../' 语法,但我认为它希望我指向一个节点模块文件夹,我不确定如何最好地设置它。

奖金问题

如何处理“垫片”,例如我希望我的观点引用“淘汰赛”,但实际上是引用一个文件,该文件本身包含淘汰赛并添加我们所有的插件和自定义优势,然后重新导出淘汰赛

感谢您的任何帮助!

【问题讨论】:

您可以创建和管理个人 NPM 包,以保留或提供您想要的任何内容。 You could even manage private repos 【参考方案1】:

如何将一个随机的、单独的框架文件(也称为 jquery 插件)合并到我们的 package.json 中?

首先,提交一个问题并要求维护者支持一些包管理器。 npm 会很好,但即使是 bower 也可以。抓取随机文件的旧时代早已一去不复返了。

其次,如果作者不遵守,请考虑分叉他们的代码并将其发布到 npm 或 bower 为他们/为你。考虑到至少在 npm 和 bower 之一中可用的数千个包,我认为这是反对在我的项目中使用该软件的主要危险信号。

第三种选择只是下载他们的文件并将其放入您的 git 存储库中,然后通过 the browser field in package.json 引用它:

"browser": "colorPicker": "./thirdParty/jquery.colorpicker.js"

如何处理“垫片”,例如我希望我的观点引用“淘汰赛”,但实际上是引用一个文件,该文件本身包含淘汰赛并添加我们所有的插件和自定义优势,然后重新导出淘汰赛

这正是 browserify-shim 在用作 browserify 转换时所做的事情。

在处理所有生态系统和 hack 时会有一些学习曲线和/或挫败感,但最终我已经能够使用正确的 browserify 和 browserify-shim 配置来使用几乎所有东西,包括 jquery、jquery 插件,angularjs,以及几乎所有来自 bower 的包。

如果您遇到问题,请发布一个单独的问题,详细说明您遇到问题的原因。

【讨论】:

以上是关于使用 NPM 管理文件依赖项的主要内容,如果未能解决你的问题,请参考以下文章

子文件夹中的 Node.js npm 依赖项

如何通过 NPM 管理非节点模块作为 Node Project 的依赖项?

为 Node.JS + NPM 使用备用依赖项列表

使用 Node 8.9.4 LTS 安装 Sails.js 依赖项时,NPM“ENOENT:没有此类文件或目录错误”

来自 GitHub 发布二进制文件的 NPM 安装/依赖项

使用本地 npm 依赖项设置 docker nodejs 应用程序