使用 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 管理文件依赖项的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 NPM 管理非节点模块作为 Node Project 的依赖项?