有没有办法确定是否由于本机浏览器事件而调用给定的函数?
在现代浏览器中,如果window.open(...)从源自单击处理程序的作用域链中调用该函数,则页面将打开而没有问题.
但是,如果您尝试直接调用它,浏览器将生成弹出警告.
因此浏览器会跟踪执行上下文并以某种方式标记它,以便首次使用该函数成功.如果没有此标志,则会阻止第二次使用.
是否有任何方法可以访问此标志以在内部阻止某些函数执行,如果它们是直接调用而不是从真正的本机浏览器事件调用.
我查看了我的函数接收的事件对象,但是我无法发现真正的本机事件和手动触发事件所生成的事件之间的任何不同.
我真正想要的是什么?
在准备部署代码时,我将如何清理node_modules文件夹.
我正在使用node-webkit创建一个应用程序,并且在捆绑最终版本的应用程序时,由于解压缩过程需要一些时间,因此我希望包含尽可能少的文件.
我已经查看npm dedupe并使用npm install --production去除重复项并仅获取生产文件,但是我仍然留下Readme文件benchmarks,tests以及build我不需要的文件.
我想为node_modules文件夹中的每个模块最终得到的是一个LICENSE文件(如果它存在),package.json以及模块运行所需的任何其他内容,但仅此而已.
问题:如何自动清理一个SCM提交的node_modules目录有点朝着同一个方向,但它正在谈论提交所以不是我真正想要的.
问题:NPM清洁模块在某种程度上与我的相同,但并不完全相同.
这个答案很有帮助,因为它是dedupe捆绑最终应用程序的更有效的版本.
更新
我尝试了从这里链接的自定义模块,但它似乎无法正常工作,即使在一些摆弄之后.
尽管如此,我还没有找到正确的答案.
这是我正在寻找的一个例子.
在我的项目中,我目前有两个依赖项:socket.io和socket.io-client.
它们共计15 MB,包含110个文件夹中的550个文件.
手动清洁readme,makefile,VC++建立文件,如.pdb和.obj和其他不必要的文件,我能够缩小它下降到2.74 MB与265个文件73个文件夹.
这只有两个模块.
我想知道是否有办法自动执行此操作,最好是npm.
我在共享托管平台上,并希望限制我的应用程序中的查询,以便如果总执行时间超过一定量的可变时间段,那么我可以让应用程序冷却,然后稍后恢复.
要做到这一点,我想知道我的每个查询实时采取多长时间并在应用程序中管理它,而不是通过外部进行分析.
我已经在PHP中看到了在查询之前和之后记录时间的示例(甚至phpMyAdmin都这样做),但这在NodeJS或异步运行查询的任何内容中都不起作用.
所以问题是:我如何在NodeJS中获取查询的实际执行时间?
作为参考,我使用这个模块来查询MySQL数据库:https://github.com/felixge/node-mysql/
node.js ×2
events ×1
javascript ×1
mysql ×1
node-modules ×1
node-mysql ×1
npm ×1
optimization ×1