4

我正在与一个中型团队一起开发一个大型前端应用程序。到目前为止,我们一直在使用 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:../../' 语法,但我认为它希望我指向一个节点模块文件夹,我不确定如何最好地设置它。

奖金问题

我如何处理“shims”,例如我希望我的视图引用“knockout”,但实际上是引用一个本身包含敲除并添加我们所有插件和自定义优点的文件,然后重新导出敲除

任何和所有的帮助表示赞赏!

4

1 回答 1

2

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

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

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

第三种选择只是下载他们的文件并将其放入您的 git 存储库中,并通过package.json 中的浏览器字段按照以下方式引用它:

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

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

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

有一点学习曲线和/或处理所有生态系统和黑客的挫折,但最终我已经能够让几乎所有东西都可以使用正确的 browserify 和 browserify-shim 配置,包括 jquery,jquery 插件,angularjs,以及几乎所有来自 Bower 的包裹。

如果您卡住了,请发布一个单独的问题,详细说明您是如何卡住的。

于 2015-02-06T00:38:49.283 回答