Chosen: 在 npm 中没有选择?

创建于 2013-07-31  ·  25评论  ·  资料来源: harvesthq/chosen

有 package.json 文件,但 npm 没有返回相应的“选择”包。

最有用的评论

在 bower-chosen fork 中添加包定义有什么困难? 是懒惰还是无能? 在租约中,您可以在一定程度上满足节点用户,而不是完全满足他们。

如此周到的评论.. 请记住,它是开源的,每个人都在空闲时间做出贡献。 除此之外,每个额外的功能都必须维护,这会花费时间。 但可以肯定的是,既然有bower-chosen回购,npm 包应该不会太远。

@pfiller也许我们应该将bower-chosen重命名chosen-packaged (或其他与特定经理无关的名称)并在回购中包含package.json

所有25条评论

目前,package.json 文件主要用于为开发人员安装 Chosen 的开发要求。

因为它是一个仅在浏览器中工作的库,而不是在服务器端,所以将它放在 npm 上有意义吗? (这是一个真正的问题,我根本不是 node.js 开发人员,而是一个 PHP 人,所以我不知道 npm 约定)

主要原因是使用Browserify以便在 JS 中我们可以执行var Chosen = require('Chosen');而不是在任何地方删除脚本标记。 服务端 JS 已经使用了require格式,browserify 简单地解析了 requires(模拟 node.js 得到的漂亮的模块定义,但用于前端)并将其转换为一个大的最终 build.js(带有捆绑的所有依赖项)文件以提供给 index.html。

+1 在这个问题上 - 我使用 browserify 并在我的应用程序中使用 selected 但目前我必须将它放在vendor目录中,这真的很烦人

对此也有 +1。 使用 Browserify 在 NPM 上很有意义。

也从我那里 +1 :) 也使用 browserify

+1

+1

+1

+1

如果您需要此插件,则只能将$jQuery放入全局范围,然后再执行chosen = require(../path/chosen.min.js)

例子:

 var $ = require('jquery');
 window.$ = $;
 window.jQuery = $;
 var chosen = require(./chosen.jquery.min.js)

你可以在你的代码中使用$('select').chosen();

来源: http :

+1

+1

+1 为 browserify 支持请

我认为这里的修复很容易。

  1. 添加 UMD 包装器
  2. 将构建的文件添加到 repo
  3. 将构建的文件发布到npm

如果被选中的团队对这样的 PR 感兴趣,请告诉我,我会整理一些东西。 构建的文件也可以放在 Bower 上,然后使用 Chosen 的开发人员应该没有任何问题。

@jmeas

将构建的文件添加到 repo

这不会发生。 我们曾经这样做过,这对团队来说是一场噩梦。 编译后的 JS + CSS 不会被添加到 repo 中——这在问题跟踪器上已经讨论过很多次了。

预编译版本通过发布页面提供。 如果您选择的包管理器支持通过 ZIP 指定包,您应该使用它们。 有关示例,请参阅凉亭说明

如果您选择的包管理器_不_支持 ZIP 或使用GitHub 发布 API ,您应该向他们打开一个问题以添加对此的支持。

Browserify 用户,我知道您有两种选择。 第一个是上面描述的,但我将再次总结它:

解决方案一:使用 Bower 和window

按照自述文件中的说明进行操作。 不幸的是,据我所知,您不能使用npm ,因此在您的项目中设置bower并安装 zip。 使用以下内容将模块添加到您的代码中:

var $ = require('jquery');

// Chosen requires this :(
window.jQuery = $;

require('path/to/bower_components/chosen_v1.3.0/chosen.jquery');

它有效! 正如您所期望的那样,jQuery 将被永久修改,因此您无需要求在应用程序的其他任何地方进行选择。

如果您尝试访问浏览器全局变量,我建议您确保您的 linter 抛出错误,以确保您不会在代码中的任何其他地方开始引用此window.jQuery

对凉亭和窗户不感兴趣? 我感受你。 第二种选择是...

解决方案二:自己包装

我的应用程序通常有vendor目录,用于少数未打包处理模块加载器的库。 如果你在selected周围添加

为什么不直接使用 browserify-shim?

这绝对是一个选择。 我的应用程序的测试在 Node+JSDom 中运行,因此它需要在不填充或别名库的情况下工作。

到本周末,我希望在npmbower上构建一个包含 UMD 的 Chosen,因此人们可以在未来从那里安装任何问题。 如果你提醒我,我会保持最新,所以如果你是未来的读者并且我的叉子已经过时了,只需打开一个问题,我就可以删除一个版本。

:+1: 用于本地凉亭组件。 希望能够直接导入scss文件。

+1 用于将 Chosen 包添加到 npm。

+9001 用于将选择的包添加到 npm。

似乎 Chosen 的开发进展缓慢(至少目前是这样),维护人员似乎对更新 Chosen 工作的环境不感兴趣。

最好的方法是 prob。 只是 fork 这个项目来添加 npm 支持(如果你愿意,也可以支持 UMD !)。 你可以在 npm/Bower 上发布一个新版本(可能在modern-chosen ?)然后打开一个 PR 到上游更改。

如果他们合并它,那就太好了——你可以弃用你的模块。 否则人们会开始使用你的叉子。

(我在“谁”的意义上使用“你”,而不是任何特定的人:P)

在 bower-chosen fork 中添加包定义有什么困难? 是懒惰还是无能? 在租约中,您可以在一定程度上满足节点用户,而不是完全满足他们。

在 bower-chosen fork 中添加包定义有什么困难? 是懒惰还是无能? 在租约中,您可以在一定程度上满足节点用户,而不是完全满足他们。

如此周到的评论.. 请记住,它是开源的,每个人都在空闲时间做出贡献。 除此之外,每个额外的功能都必须维护,这会花费时间。 但可以肯定的是,既然有bower-chosen回购,npm 包应该不会太远。

@pfiller也许我们应该将bower-chosen重命名chosen-packaged (或其他与特定经理无关的名称)并在回购中包含package.json

我已经设置了一个 PR (#2550),它应该负责一个 npm 包,请查看附加到该 PR 的示例包是这个包的样子。 谢谢!

2550 被合并,Chosen 现在也在 NPM 上作为chosen-js

@koenpunt谢谢! 问题是该包包含构建文件,因此无法导入原始 scss。

相关:#2347

此页面是否有帮助?
0 / 5 - 0 等级