作为一名库作者,我想知道我的库是否与 React 或其他一些 UI 框架(Vue、Svelte 等)一起使用。
有没有办法检测React的代码是否被加载?
以下 Stack Overflow 答案没有回答这个问题,因为它们只能使用开发者控制台。(而我想从 JavaScript 库的角度来检测 React。)
上下文:我正在构建vite-plugin-ssr。(它类似于 Next.js/Nuxt,但作为一个只做一件事、做好它的 Vite 插件。)
编辑:在 React渲染/水化页面之前,我需要能够在浏览器中加载 React 后立即检测到 React。到目前为止,下面的所有答案都发现 React 为时已晚。
一种方法是解析new Date().toLocaleString().但这在chrome/webkit中不起作用,因为它返回的字符串不依赖于用户的语言环境(请参阅http://code.google.com/p/chromium/issues/detail?id=3607上的错误报告)
我强调,我正在寻找一种只有客户端的解决方案,并且它在铬中起作用.
我还没有看到(还有?)JSON.stringify在Node.JS中是不确定的.
不能保证它在规范级别上具有确定性.
但是V8呢?它的实施是否具有确定性?是否可以保证它在未来的V8版本中保持确定性?
编辑:
确定性我的意思是,无论价值json_str是什么,跟随断言都是正确的.(给定值是有效的JSON字符串.)
const obj = JSON.parse(json_str);
assert(JSON.stringify(obj)===JSON.stringify(obj)); // always true
Run Code Online (Sandbox Code Playgroud)
编辑2:
实际上,我也对下面的断言感兴趣
if( deepEqual(obj1, obj2) ) {
assert(JSON.stringify(obj1)===JSON.stringify(obj2))
}
Run Code Online (Sandbox Code Playgroud)
事实并非如此(见答案).
我维护一个在npm注册表上发布的JavaScript库,它有很多依赖项.很难跟踪代码的哪个部分取决于外部包.
不幸的是lerna,yarn工作空间,npm link或者npm本地路径依赖声明都没有帮助.(我解释了为什么在这个例子之后.)
我希望能够通过将一些依赖项提取到新的"子包"中来分解dependencies声明的列表package.json.
所以,而不是具有以下依赖列表
// ~/code/example-lib/package.json
{
"name": "example-lib",
"dependencies": {
"lodash": "*",
"request": "*",
"chalk": "*",
"bluebird": "*",
"mz": "*",
"moment": "*",
"socket.io": "*",
"socket.io-client": "*",
"react": "*",
"react-dom": "*"
}
}
Run Code Online (Sandbox Code Playgroud)
我想将一些依赖项提取到一个新的本地包中example-lib-subpackage.对于本地而言,我的意思example-lib-subpackage是仅仅意味着消费example-lib.
example-lib-subpackage的依赖列表是;
// ~/code/example-lib/packages/example-lib-subpackage/package.json
{
"name": "example-lib-subpackage",
"dependencies": {
"lodash": "*",
"request": "*",
"bluebird": "*",
"moment": "*",
"socket.io-client": "*",
"react": "*",
"react-dom": "*"
}
}
Run Code Online (Sandbox Code Playgroud)
并且example-lib …
有很多精彩的 unicode 符号。这真太了不起了。
\n但如果我不知道我的用户的字体是否支持它们,它们就毫无用处。
\n我怎样才能找到它?
\n我可以跟踪用户的字体是否支持 unicode 符号吗?
\n有什么办法可以有某种后备吗?(如果不支持此 unicode 符号,则显示其他 unicode 符号。)
\n有操作系统/浏览器支持参考吗?(到目前为止,我已经广泛搜索了此类参考资料,但没有任何运气。)
\n您决定是否使用 unicode 符号的策略是什么?
\n我很想使用更多这些可爱的 unicode 符号。
\n===编辑===
\n例如:我想在readme.mdGitHub 上的项目中使用 unicode“U+2605 \xe2\x98\x85 BLACK STAR”。我怎样才能知道这个unicode符号是否会正确显示?
我正在尝试在以下位置设置安全 cookie http://localhost:3000:
设置 Cookie:loggedUser=brillout;最大年龄=315360000;路径=/;仅 Http;安全的
但 Chrome 抱怨道:
此 Set-Cookie 被阻止,因为它具有“安全”属性,但不是通过安全连接接收的。
然而,根据 MDN 的说法,它应该可以工作:
具有 Secure 属性的 cookie 仅通过 HTTPS 协议上的加密请求发送到服务器,绝不会使用不安全的 HTTP(本地主机除外)
是否可以Secure在存在时设置http://localhost?开发https://localhost而不是开发http://localhost不是一个选择。
我有一个SVG图标.我想用不同的颜色作为favicon.
由于SVG元素没有任何toDataUrl(),因此我没有看到不涉及服务器的解决方案.
客户端解决方案的任何想法?
每个URL都可以链接到单个缓存清单.但我想要一些链接到同一URL的缓存清单.原因如下:
我想要缓存的一些文件很少更新和大.因此,每次缓存更新时,这些大文件都会重新下载,即使它们可能没有被更改.所以我想拆分缓存.一个用于论文的缓存很少更新大文件,而另一个缓存用于经常更新的光文件.
你们有没有想过如何拆分HTML5缓存?
检测用户是否有物理键盘的最可靠方法是什么?
一个想法是,因为没有物理键盘window.onkeydown可以undefined(而不是null).但由于虚拟键盘,我认为情况并非如此.我没试过.
我的目标是有input[type='number']一个的在线计时器与轮采摘来代替,如果用户没有键盘.
在Chrome中,就目前而言,Datalist仅在键入或双击input元素时出现,例如http://jsfiddle.net/r7Y4v/
我试图让数据主义者更早出现.理想情况下,我会在输入旁边放置一个"下拉箭头",单击该按钮会使Datalist出现.
我正在寻找一个webkit解决方案.