小编bir*_*ril的帖子

JSLint的'容忍愚蠢'

任何人都知道JSLint的"容忍愚蠢"选项是什么意思?它禁用了哪些警告系列?

我发现了一些Node.js和"Sync"方法的参考(包括Crockford的评论"它的名字非常好"),但没有明确的答案.

谢谢.

javascript jslint

43
推荐指数
1
解决办法
7682
查看次数

为decodeAudioData定义'有效的mp3块'(WebAudio API)

我正在尝试使用decodeAudioData来解码并在javascript中播放更大的mp3文件的初始部分.我的第一个原始方法是从mp3的开头切掉一些字节并将它们提供给decodeAudioData.毫不奇怪,这失败了.

一些挖后似乎decodeAudioData仅能够与由记录"有效的MP3块"工作公平鼎恳Thinkum,在这里.

然而,没有关于有效mp3块的结构的澄清(前面提到的作者没有涉及到这一点).我知道存在的各种mp3分离器,但我想以编程方式处理它.(我正试图在服务器端使用nodejs实现一种"穷人的流媒体").

那么,拆分mp3帧头是否足够或者我需要做更多?(或许通过在末尾添加一些数据来"关闭"每个块?)'字节库'怎么样?这会引起问题吗?为了记录,我目前正在使用128kbps cbr mp3.这会以任何方式简化流程吗?

任何有关decodeAudioData期望作为虚拟数据的信息都将受到赞赏.

谢谢.

PS:我意识到这可能是对Fair Dinkum Thinkum的帖子的澄清请求,但我的低声誉让我不发表评论.所以我不知道如何做到这一点,但有一个新的问题.再次感谢.

javascript mp3 web-audio-api

13
推荐指数
1
解决办法
6106
查看次数

防止react-router history.push重新加载当前路由

我迈出了第一步react-router.

我目前正在使用hashHistory开发目的,我正在执行"手动"导航.也就是说,我没有使用Link我正在调用history.push('/some/route');以便导航(响应对锚标签的普通旧点击).

我注意到的是,即使我已经在目标路径上,react-router每次history.push('/target/route');调用时都会重新渲染相关的目标组件:每一个push('/target/route'):

  • URL的片段部分仍然存在 #/target/route
  • URL的查询字符串部分更改为 ?_k=somethingRandom
  • 目标组件重新渲染

我希望重新渲染不会发生 - history.push当我已经在我正在尝试的路线时,我实际上期望成为无操作push.

我显然错过了一些东西,因为这不是正在发生的事情.有趣的是,我正在看到那些试图实现我想要摆脱的行为的人的帖子- 他们想要"刷新"一条路线而不会离开它,可以这么说.这看起来很像相反的问题:).

你能告诉我这是什么,我误解了,我将如何实现理想的行为?如果(当)切换到这个时,这可能会消失browserHistory吗?

javascript reactjs react-router

8
推荐指数
1
解决办法
1万
查看次数

如何避免节点需要两次加载相同的模块

我正在开发一个节点模块my-module,而后者依赖于另一个模块other-module.other-module因此是我的模块的package.json中明确列出的依赖项.

由于我的模块修改的行为other-module由被刚required,重要的是,other-module只加载一次,而这,一个和唯一的"实例"是一个贯穿既需要任何应用程序所引用myother.

我希望根据节点的模块缓存策略保持这一点,但是我在编写一个简单的测试应用程序时遇到的是:

如果my-modulenpm install other-module那么后者则带来了作为前者的依赖.npm install荷兰国际集团other-module之后带来入node_modules层次结构中的第二次.然后,当我的模块需要时other-module,节点加载我的模块的"本地"副本,当应用程序再次require加载它,(这次是由于第二次安装的版本npm install).这显然不是预期的结果.

如果my-modulenpm installed 之后, other-module我最终得到other-modulenode_modules的一个副本,我的测试应用程序按预期工作.

这种行为让我再次查看节点的相关策略,果然我遇到了"模块缓存注意事项":

模块根据其解析的文件名进行缓存.由于模块可能会根据调用模块的位置(从node_modules文件夹加载)解析为不同的文件名,因此不能保证require('foo')将始终返回完全相同的对象,如果它将解析为不同的文件.

此时看起来我的模块可能会或可能不会按预期运行,具体取决于npm installs 的顺序.

我缺少哪些最佳实践?有没有办法避免这种混乱而不改变我的模块的工作方式?

javascript module require node.js npm

6
推荐指数
1
解决办法
1675
查看次数

Node/npm:如何管理全局安装的devDependencies

我正在构建一个带有devDependencies的Node模块,应该全局安装,例如jasmine-node和jshint.我基本上需要的是能够在我的makefile/npm脚本部分中引用它们的二进制文件来运行测试,lint等.换句话说,我不希望以编程方式要求它们.

在挖掘之后,我仍然对如何处理这个问题感到困惑:

1)我的第一种方法是假设这些模块将全局安装,在我的模块文档中澄清这一点,并将它们的二进制文件作为全局变量引用 - 即期望它们全局可用.这与这条建议相冲突

确保避免引用全局安装的二进制文件.而是将其指向本地node_modules,它将二进制文件安装在隐藏的.bin目录中.确保模块(在本例中为"mocha")位于devDependencies下的package.json中,以便在运行npm install时将二进制文件放在那里.

(摘自这篇文章)

这通常听起来是正确的,因为上述设置相当脆弱.

2)我的下一个方法明确地将这些模块包含在devDependencies中(尽管它们仍然全局安装在我的系统上(并且很可能也在用户和贡献者的系统上)).这可确保在需要时存在适当版本的二进制文件,现在我可以通过它们进行引用node_modules/.bin/.

但是我现在与这条建议发生冲突

如果你想要()它在本地安装它.

(摘自npm docs)

无论如何,我注意到npm install现在实际上不会为全局安装的模块提取任何内容(不显示网络活动).


我的问题:

  • 全局安装模块的本地版本(在devDependencies中提到)是全局模块的快照(副本)npm install吗?
  • 2)正确的方法是这样做吗?还是有其他一些我不知道的做法?

javascript module dependency-management node.js npm

6
推荐指数
2
解决办法
1756
查看次数