我需要清除 Chrome 中一个文件的缓存。
\n我正在设置从我自己的 CDN 加载字体,并添加cache-control: public, max-age=31536000, immutable标题。但是,我没有正确设置 CORS,因此出现 CORS 错误。现在,CORS 错误已修复,但由于缓存控制标头,Chrome 仍在服务旧请求。
注意:我只需要清除一次缓存。我希望字体将来是不可变的。
\n我可以确认 CORS 错误有两个原因:
\ncurl -IL -X\'GET\' -H\'Origin: http://localhost:3000\' https:example.com/file返回正确的 CORS 标头caching google-chrome browser-cache cache-invalidation google-chrome-devtools
假设我对 Javascript monorepo 有以下限制
\n-- module a\n package.json\n-- module b\n package.json\npackage.json\nRun Code Online (Sandbox Code Playgroud)\n模块 A 和模块 B 都依赖于 lodash。
\n使用pnpm,有什么方法可以确保它们都使用相同版本的lodash?就像在根目录中安装 lodash 并说“使用工作空间根目录中的任何版本”一样?
\nPS 我知道 pnpm 允许 或 工作区,但根据我的理解(这可能是错误的),只有当依赖项已经是 monorepo \xe2\x80\x94 中的模块而不是第 3 方依赖项时才使用它。
\n我有一个带有搜索输入的粘性标题。为确保锚标记 ( <a href='#section'>) 不会隐藏标题顶部后面的内容,我添加了以下 CSS。
html {
scroll-padding-top: 48px
}
Run Code Online (Sandbox Code Playgroud)
但是,如果粘性标题包含输入,则当用户输入输入时整个页面将滚动。
有没有办法保留当前的滚动填充行为并防止在使用输入时自动滚动?最好只使用 HTML 和 CSS。
html {
scroll-padding-top: 48px;
}
body {
margin: 0;
}
header {
position: sticky;
top: 0;
background: #eeeeee;
padding: 8px 16px;
}
main {
padding: 8px 16px;
}
main article,
main div {
padding: 32px 0;
border-bottom: 1px solid lightgray;
}
main div {
background: #ddddff;
}Run Code Online (Sandbox Code Playgroud)
<html>
<body>
<header>
<input type='text' placeholder='type here, page scrolls' />
</header>
<main>
<article>
<p><a href='#anchor-point'>click me …Run Code Online (Sandbox Code Playgroud)我正在尝试从浏览器将图像上传到数字海洋空间。这些图像应该是公开的。我能够成功上传图像。
然而,虽然ACL设置为public-read,但上传的文件始终是私有的。
我知道它们是私有的,因为 a) 仪表板显示权限是“私有”,b) 因为公共 URL 不起作用,c) 在仪表板中手动将权限更改为“公共”可以修复所有问题。
这是我正在使用的总体流程。
有什么想法为什么这些图像不公开吗?
以下示例以 TypeScript 编写并使用 AWS 的 v3 SDK。
这会生成用于上传文件的预签名 URL。
import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3'
import { getSignedUrl } from '@aws-sdk/s3-request-presigner'
const client = new S3Client({
region: 'nyc3',
endpoint: 'https://nyc3.digitaloceanspaces.com',
credentials: {
accessKeyId: process.env.DIGITAL_OCEAN_SPACES_KEY,
secretAccessKey: process.env.DIGITAL_OCEAN_SPACES_SECRET,
},
})
const command = new PutObjectCommand({
ACL: 'public-read',
Bucket: 'bucket-name',
Key: fileName,
ContentType: mime,
})
const url = await …Run Code Online (Sandbox Code Playgroud) Sveltekit 终于公开测试版了。有谁知道如何将它与 Tailwind CSS 一起使用?这种集成没有任何官方文档。
当依赖项未声明为模块时,如何从依赖项中解决“不能在模块外使用导入语句”?
我想用验证在斯维尔特/套件来验证电子邮件。但是,在导入 ESM 版本时,出现“无法在模块外使用导入语句”错误。我使用的是 pnpm 而不是 npm 或 yarn。
import isEmail from 'validator/es/lib/isEmail'
Run Code Online (Sandbox Code Playgroud)
/node_modules/.pnpm/validator@13.6.0/node_modules/validator/es/lib/isEmail.js:1
import assertString from './util/assertString';
^^^^^^
SyntaxError: Cannot use import statement outside a module
at Object.compileFunction (node:vm:355:18)
at wrapSafe (node:internal/modules/cjs/loader:1039:15)
at Module._compile (node:internal/modules/cjs/loader:1073:27)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1138:10)
at Module.load (node:internal/modules/cjs/loader:989:32)
at Function.Module._load (node:internal/modules/cjs/loader:829:14)
at Module.require (node:internal/modules/cjs/loader:1013:19)
at require (node:internal/modules/cjs/helpers:93:18)
at nodeRequire
Run Code Online (Sandbox Code Playgroud)
似乎验证器正在尝试使用 import 语句,但它的 package.json 没有指定"type": "module". 我的猜测是这是错误的根本原因。
"type": "module"'validator/lib/isEmail',但这会导致与此线程无关的其他错误。假设我有一个名为add添加两个数字的 Rust 函数。我想编写一套全面的单元测试以确保它始终有效。
据我所知,有两种方法可以编写测试。
\nassert_eq!在一个测试函数中多次使用这些都不理想(见下文)。还有另一种更好的方法来用 Rust 编写单元测试吗?
\n#[test]\nfn test() {\n assert_eq!(add(1, 2), 3);\n assert_eq!(add(2, 4), 5);\n assert_eq!(add(2, 3), 5);\n}\nRun Code Online (Sandbox Code Playgroud)\n当一切都过去后,这很有效。但如果一个断言失败了,你就不知道是哪一个断言失败了。例如,在上面的测试中,您获得的唯一帮助是“左:6,右:5”。哪个断言导致了这个?这很容易分辨,因为add这是微不足道的,但对于任何非微不足道的事情,你都一无所知。
#[test]\nfn add_1_and_2() {\n assert_eq!(add(1, 2), 3);\n}\n\n#[test]\nfn add_2_and_4() {\n assert_eq!(add(2, 4), 6);\n}\nRun Code Online (Sandbox Code Playgroud)\n这解决了使用多个断言的所有问题。然而,测试变得非常冗长,您需要为每个测试创建一个唯一的函数名称。想象一个具有 4-5 个不同参数的函数,并且您正在测试所有组合。有很多难以命名的函数!但至少你会知道哪个断言是错误的。
\n理想情况下,我正在寻找一个与使用 Jest 进行 JavaScript 测试具有相同功能的解决方案。
\nconst tests = [[1, 2, 3], [2, 4, 6]];\n\nit.each(tests)("adding %s and %s gives %s", …Run Code Online (Sandbox Code Playgroud) 使用date-fns 的 format 函数,如果是当前年份,是否可以省略年份?是否有一些格式字符串可以启用此功能?
import { format } from 'date-fns'
const date = new Date('July 4, 2021')
// current year is 2021
format(date, 'format string')
// should output "July 4"
format(date, 'format string')
// should output "July 4, 2020"
Run Code Online (Sandbox Code Playgroud)
如果除了 之外还有另一个 date-fns 函数可以执行此操作format,那也可以。我假设任何此类解决方案都可能会使用该format函数,因为这是格式化日期。
我知道目前可以使用if语句手动执行此操作。
const date = new Date('July 4, 2021')
if (date.getFullYear() === (new Date()).getFullYear()) {
format(date, 'MMM d')
} else {
format(date, 'MMM d, YYY')
}
Run Code Online (Sandbox Code Playgroud)
虽然这有效,但我更好奇是否有一种方法可以使用 date-fns 对其进行本机格式化。
我不确定这里发生了什么事。我在 NextJS 中设置了一个 API 路由,该路由在数据加载之前返回。有人可以指出这里有任何错误吗?
我有一个调用 makeRequest() 中的数据的函数:
export async function getVendors() {
const vendors = await makeRequest(`Vendor.json`);
console.log({ vendors });
return vendors;
}
Run Code Online (Sandbox Code Playgroud)
然后路由:/api/vendors.js
export default async (req, res) => {
const response = await getVendors();
return res.json(response);
};
Run Code Online (Sandbox Code Playgroud)
这是 makeRequest 函数:
const makeRequest = async (url) => {
// Get Auth Header
const axiosConfig = await getHeader();
// Intercept Rate Limited API Errors & Retry
api.interceptors.response.use(
function (response) {
return response;
},
async function (error) {
await new …Run Code Online (Sandbox Code Playgroud) 我想创建一个 Neovim 插件,每当保存文件时自动运行测试套件。概述如下:
cargo test:q),则在下一次测试运行时创建一个新缓冲区然而,我目前面临三个问题:
我该如何解决这些问题?作为参考,这是我的代码:
local buffer_number = -1
local function log(_, data)
if data then
vim.api.nvim_buf_set_lines(buffer_number, -1, -1, true, data)
end
end
local function open_buffer()
if buffer_number == -1 then
vim.api.nvim_command('botright vnew')
buffer_number = vim.api.nvim_get_current_buf()
end
end
local function autotest(pattern, command)
vim.api.nvim_create_autocmd("BufWritePost", {
group = vim.api.nvim_create_augroup("autotest", { clear = true }),
pattern = pattern,
callback = function()
open_buffer()
vim.api.nvim_buf_set_lines(buffer_number, 0, -1, true, {}) …Run Code Online (Sandbox Code Playgroud) javascript ×2
amazon-s3 ×1
async-await ×1
aws-sdk ×1
caching ×1
css ×1
date ×1
es6-promise ×1
event-loop ×1
html ×1
monorepo ×1
neovim ×1
next.js ×1
node-modules ×1
node.js ×1
npm-package ×1
package.json ×1
pnpm ×1
rust ×1
settimeout ×1
svelte ×1
svelte-3 ×1
sveltekit ×1
tailwind-css ×1
testing ×1
unit-testing ×1