小编cal*_*lum的帖子

是否可以为devDependencies设置单独的node_modules文件夹?

我有一个我正在部署到Heroku的Node应用程序.他们的文档说最好检查你的node_modules目录(即不要 gitignore),以便更快地部署和开发/生产奇偶校验.

在我package.json,我有很多devDependencies(大多是Grunt插件和他们所有的deps)和一些常规生产,dependencies如Express.Heroku只需要生产代表.我宁愿不检查所有的开发设备,因为它们大约50MB.

有没有办法为你开发一个单独的文件夹,例如node_modules_dev?如果这是可能的,那么我可以添加node_modules_dev到我的.gitignore,并node_modules根据Heroku的建议检查常规生产目录.

有没有办法做到这一点?或者你能想到另一种方法去做我想做的事吗?

heroku node.js node-modules

9
推荐指数
2
解决办法
938
查看次数

解析JSON时如何防止删除小数点?

如果你这样做......

var parsed = JSON.parse('{"myNum":0.0}') ;
Run Code Online (Sandbox Code Playgroud)

然后,当你看parsed.myNum,你得到0.(很公平.)

如果你这样做parsed.myNum.toString(),你会得到"0".

基本上,我正在寻找一种方法将其转换为字符串"0.0".

显然,在现实生活中我不控制JSON输入,我从Web服务获取JSON ...我想使用浏览器的JSON解析器解析JSON,并且能够识别数值00.0.

有没有办法做到这一点,没有手动读取JSON字符串?在这种情况下,这是不可能的,我需要使用浏览器的本机JSON解析器,以提高速度.(顺便说一下,这适用于Chrome扩展程序;无需担心它在其他浏览器中运行.)

javascript json google-chrome

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

Apache是​​否缓存静态文件的gzip压缩版本?

如果您配置Apache以为您的静态HTML/CSS/JS /等启用gzip压缩.文件,它会自动将gzip压缩版本输出到任何发送适当Accept-Encoding请求标头的客户端.(对于其他客户端,它只发送原始未压缩文件.)

我的问题是:每次接受gzip的客户端请求时,Apache都会重新压缩原始文件吗?或者它是否缓存gzipped副本,只有在注意到文件的最后修改时间发生变化时才重新压缩它?

如果它确实缓存了文件的gzip压缩副本,那么这个缓存存储在哪里?

compression apache performance gzip

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

声明属性为false的正确方法是什么?

在HTML5中,您可以将属性添加draggable到任何元素 - 它的工作原理如下checked; 它不需要值.如果你确实想要指定一个值(例如,使其成为有效的XML),我认为官方的标准语法是checked="checked",但其他的东西也有效(包括checked=""checked="false",令人困惑).使其成为"假"的标准方法是根本不包括该属性.

<img>默认情况下,元素似乎是"可拖动的"(即使您不包含draggable属性) - 这就是当您在网页中拖动常规图像时获得"重影"图像效果的原因.img如果标记它们,则会对非元素产生相同的效果draggable.

那么如何在img元素上禁用它呢?您可以在JavaScript中将该属性设置为false.但是在HTML中呢?

(通过实验,我知道这draggable="false"似乎在Chrome中有效 - 是一种适用于所有地方的标准语法吗?如果是这样,为什么不能checked="false"以相同的方式工作?)

javascript html5 attributes

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

有没有办法与Chrome Dev Tools中最后记录的对象进行交互?

如果我使用console.log从脚本内部记录对象,我可以在控制台中看到该对象,我可以通过单击小箭头来检查它.所以我可以看到它有什么方法(即使在它的原型中).但是我可以在控制台中直接运行其中一种方法吗?

换句话说,是否有某种神奇的变量(类似于$0)我可以在控制台中输入,它会让我最后记录的对象?

google-chrome-devtools

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

是否有一个npm命令在没有安装的情况下向package.json添加依赖项?

换句话说,我想要类似的东西 npm install --save foo

...但我只是想它来更新我的package.json(加入姓名和最新版本号到我的依赖),我希望它跳过实际安装到node_modules.这可能吗?

我试过--dry-run,这确实跳过安装,但它也跳过更新package.json:/


(是的,我可以手动编辑package.json,但我想一次为大约30个依赖项执行此操作,所以我想利用npm的能力自动查找每个的最新版本号.)

node.js npm

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

是否有任何理由使用 HTTP 410 GONE 状态代码?

从您的网站永久删除页面时,为 URL 设置“410 GONE”HTTP 响应(与让它 404 相比)有什么实际好处吗?

http

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

使用libvlc在Electron应用程序内进行多格式视频播放

我有一个关于媒体播放器GUI的想法,我想用Electron构建它(因为它是我熟悉的工具;我意识到它不适合所有人).我可以使用HTML <video>元素和一些自定义UI 轻松地做到这一点,但这只能播放几种格式.

我希望它能够播放尽可能多的不同视频格式.所以我想知道尝试使用libvlc.

libVLC(VLC SDK)媒体框架可以嵌入到应用程序中以获得多媒体功能.

我目前对libvlc(或一般的C库)知之甚少,但我希望它可以从Node/Electron与它接口,这样我就可以在Electron GUI中播放一个视频文件了.

在深入研究libvlc文档之前,我想知道:

  • 我的目标是什么?
  • 在他们自己的GUI中是否有任何使用libvlc进行视频播放的现有和维护的开源应用程序,这对我来说有用吗?
  • 在高层次上,应用程序如何实际使用libvlc?该应用程序是否打电话给libvlc说"请some/file.mp4在屏幕上的这些坐标处播放X到Y的视频窗口",或者更像是"请播放some/file.mp4并将解码后的视频帧流回来,以便我可以渲染它们在我自己的画布上"?

(顺便说一下,有一个名为node-vlc的项目看起来很有前景,但它已经维持了5年多.)

vlc libvlc electron

8
推荐指数
0
解决办法
887
查看次数

是否有ES6 +替代品可以做Object.prototype.hasOwnProperty.call(obj,key)?

检查对象是否具有特定键的最防弹的方法是:

Object.prototype.hasOwnProperty.call(obj, key)
Run Code Online (Sandbox Code Playgroud)

这提供了一定的保证:它将仅求值为trueif key是的直接属性obj,即使obj不具有通常Object的原型,它也将起作用(例如,如果使用创建的const obj = Object.create(null))。

但这是一口。

ES6或更高版本中是否有任何新的语法/方法(包括可填充或可与Babel兼容的“建议”)提供相同的保证,但以一种更好,更易读的方式提供?

javascript

7
推荐指数
2
解决办法
5190
查看次数

API 请求/响应形状(包括 JSON 架构、TypeScript 类型和运行时验证器)的单一事实来源?

我正在编写一个典型的 Node.js REST 服务,其端点接收 JSON 输入(作为 POST 正文)并返回 JSON 响应。

我想要这三件事:

  1. JSON 模式定义我的端点的请求主体和响应主体的形状。(或 Swagger 文件,或任何适合为客户定义合同的文件。)
  2. TypeScript 类型/接口完美地反映了 JSON 模式。
  3. 我可以从处理程序中调用运行时验证函数,以确保对象处于正确的形状。(一旦输入对象经过验证,我的 TypeScript 代码就应该知道它的接口。)

但我想要一个单一的事实来源,以避免这三个组件不同步。所以我只想手动维护其中之一(JSON 模式或 TypeScript 类型)。另外两个组件应该从手写的组件生成,并且不应将它们提交给版本控制。

我觉得这一定是当今相当普遍的一组要求,但我在网上找不到太多相关信息。也许我使用了错误的搜索词来研究它。是否有任何框架或传统模式可以解决此目标,即定义具有严格输入验证、标准化模式文档以及 TypeScript 中完全类型化对象的所有便利性的 JSON API 的目标?

jsonschema node.js typescript

7
推荐指数
1
解决办法
1804
查看次数