我想知道require()在node.js中使用是否相当于延迟加载?
例如,如果我有一个函数需要一个特定的node.js包,而我的代码中其他任何地方都不需要它,我最好require()在该函数内部使用,只有在调用该函数时才包含所需的包.
鉴于我对node.js架构缺乏了解,我也不确定这是否能提供任何性能改进?我认为它将为我的服务器每个连接使用更少的内存.但是,当它必须读取包时会增加磁盘的I/O,还是一次性将它放入内存中?
如果是这种情况我应该采取多少措施,我应该尽可能多地尝试编写node.js软件包吗?
在node.js中,如果你捕获uncaughtExceptions,如下所示:
process.on('uncaughtException', function (error) {
console.log(error);
});
Run Code Online (Sandbox Code Playgroud)
如果您没有捕获到错误并且只是让进程崩溃,则显示的错误消息不包含您收到的所有信息.当您让进程崩溃时,它包含导致错误的行.有没有办法获取完整的错误消息,包括导致错误的行,以便我们可以使用uncaughtException记录此数据.
我正在尝试在我的create-react-app项目中包含一些CSS.CSS来自第三方NPM包,因此它位于node_modules目录中.
我试过了:
import '/node_modules/packagename/css/styles.css';
但我得到错误:
找不到模块:您试图导入/node_modules/packagename/css/styles.css,它位于项目src /目录之外.不支持src /之外的相对导入.你可以在src /中移动它,或者从项目的node_modules /中添加一个符号链接.
我宁愿不将CSS移动到src /所以它可以通过NPM更新.我可以符号链接但是当我在Windows上开发并部署到linux时,这并不理想.
从我这里包含CSS的最佳方式是什么?
我在Node.js中使用Winston进行日志记录.我知道我可以单独为每条日志消息添加元数据,但有没有办法指定一个默认的元数据集,它将被添加到每个日志消息(例如应用程序名称),因为我不想每次都指定它我需要发送一条日志消息.
我有一个Chrome扩展程序,在单击扩展程序图标时会执行window.open().(由于Chrome中的无关错误,它无法使用传统的Chrome扩展程序弹出窗口).我想知道如果它已经打开,是否有办法聚焦弹出窗口.Chrome禁用了window.focus(),但我认为可能有办法在Chrome扩展程序中执行此操作.
更新: 对于任何感兴趣的人,这是我最终在我的后台页面中使用的代码:
var popupId;
// When the icon is clicked in Chrome
chrome.browserAction.onClicked.addListener(function(tab) {
// If popupId is undefined then there isn't a popup currently open.
if (typeof popupId === "undefined") {
// Open the popup
chrome.windows.create({
"url": "index.html",
"type": "popup",
"focused": true,
"width": 350,
"height": 520
}, function (popup) {
popupId = popup.id;
});
}
// There's currently a popup open
else {
// Bring it to the front so the user can see it
chrome.windows.update(popupId, { "focused": …Run Code Online (Sandbox Code Playgroud) 我的Chrome扩展程序中有一个加载网站的iframe,我想将CSS和Javascript注入网站,但只有当它加载到我的扩展iframe中时(因此当用户正常浏览网站时它不会受到影响) ).
我很惊讶Chrome扩展程序在尝试访问iframe的内部时会应用跨域安全策略,即使他们可以进行跨域XHR请求.
是否有捷径可寻?我虽然可以使用executeScript来完成它,但它需要一个选项卡ID.
我们在许多移动应用程序中看到的一个常见问题是当用户向下滚动页面时标题消失,当它们向上滚动页面时,标题会出现.我们如何在jQuery Mobile中实现这一目标?(我在下面回答我自己的问题)
我正在编写一个Chrome扩展程序来自动完成我的一项日常任务,部分任务是下载.csv文件并操纵数据.作为自动化的一部分,我想用Javascript抓取文件并让脚本操作它.
问题是使用XMLHttpRequest获取此文件将是一场噩梦,因为它们会发送大量唯一ID来验证用户,并且找出它们来自哪里是一场噩梦.
我可以使用javascript轻松点击按钮启动文件下载,但有没有办法让javascript拦截这个请求并解析CSV?我想如果用普通的javascript不可能我可以用HTML5文件API做到这一点?
我在脚本中调用Closure Compiler(closurecompiler.jar).该脚本还生成一些Closure Compiler需要编译的javascript.有没有办法解析这个javascript到Closure Compiler而不将其写入磁盘并阅读它--js.
当我在http://closure-compiler.appspot.com上的闭包编译器中测试以下代码时:
// ==ClosureCompiler==
// @output_file_name default.js
// @compilation_level ADVANCED_OPTIMIZATIONS
// @formatting pretty_print
// ==/ClosureCompiler==
// These get renamed
window.foo = {};
window.bar = {};
// These don't
window.uid = {};
window.test = {};
Run Code Online (Sandbox Code Playgroud)
输出是:
window.a = {};
window.b = {};
window.uid = {};
window.test = {};
Run Code Online (Sandbox Code Playgroud)
为什么重命名:
window.foo = {};
window.bar = {};
Run Code Online (Sandbox Code Playgroud)
但不是:
window.uid = {};
window.test = {};
Run Code Online (Sandbox Code Playgroud)
某些词似乎是一个问题?