小编Mar*_*tny的帖子

控制 Next.js 应用程序中 CSS 模块的特殊性

我正在尝试找出如何在 Next.js 中将 Tailwind 与 CSS Modules 一起使用的良好工作流程,但我遇到了一些关于 Webpack 插入样式的特异性和顺序的棘手问题。

考虑以下用例:我想创建一个可重用的 Button 组件,其样式可以被实用程序类覆盖。选项 1是提取组件,如Tailwind Docs 中所述

/* button.jsx */

export const Button = props => <button {...props} className={`btn {props.className}`} />
Run Code Online (Sandbox Code Playgroud)

在我的tailwind.css文件中,我将在@layer指令中添加类名:

@tailwind base;
@tailwind components;
@tailwind utilities;

@layer components {
  .btn { @apply ... }
}
Run Code Online (Sandbox Code Playgroud)

这很好,因为我可以使用实用程序类覆盖任何按钮样式,因为它们具有更高的特异性。但是,我在这里看到了一些小问题:

  • 该类现在是全局的,因此即使我不使用该组件,它也会包含在每个页面中
  • 样式和组件不再位于同一位置 - 如果我创建许多这样的类,这可能会变得混乱

选项 2是使用 CSS 模块并应用如下类:

/* button.module.css */

.btn { @apply ...}
Run Code Online (Sandbox Code Playgroud)
/* button.jsx */

import styles from "./button.module.css";

export const …
Run Code Online (Sandbox Code Playgroud)

css webpack css-modules next.js tailwind-css

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

呃!尝试将包发布到 npm 时出现 403

我正在尝试将包发布到 npm。您可以在此处查看存储库:https : //github.com/biowaffeln/mdx-state

我使用 登录到 npm npm login,然后运行npm publish并收到以下错误消息:

npm ERR! code E403
npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/mdx-state - Forbidden
npm ERR! 403 In most cases, you or one of your dependencies are requesting
npm ERR! 403 a package version that is forbidden by your security policy.
Run Code Online (Sandbox Code Playgroud)

我不知道那是什么意思。我错过了什么?

javascript node.js npm

5
推荐指数
1
解决办法
2854
查看次数

getActiveSpreadsheet() 始终返回 null

好的,所以我正在遵循这里关于如何设置简单的 Google 应用程序脚本的教程,但我被困在18:50左右。我在执行与视频中完全相同的操作时收到错误消息。

我的 Code.gs 文件中有以下代码:

function myFunction() {

  var app = SpreadsheetApp;
  var ss = app.getActiveSpreadsheet();
  var activeSheet = ss.getActiveSheet();  

  activeSheet.getRange("D2").setValue(99);

}
Run Code Online (Sandbox Code Playgroud)

以及在另一个选项卡中打开的电子表格。但每次我尝试运行“myFunction”时,都会收到以下错误消息:

TypeError: Cannot call method "getActiveSheet" of null. (line 5, file "Code")

因此由于某种原因var ss = app.getActiveSpreadsheet();显然返回 null。当我用 替换该行时它可以工作var ss = app.openById('MySpreadsheetIdHere');,但是对 id 进行硬编码确实不是我想要的,我想让这个脚本与任何任意打开的电子表格一起使用。

通过“运行”>“测试”作为附加组件运行代码也不起作用。

从我收集到的类似问题来看,似乎很难重现这个问题,以下是重现的确切步骤:

  1. 以访客模式打开chrome,没有扩展程序或任何东西
  2. 使用我的 Google 帐户登录 Google 云端硬盘
  3. 创建电子表格并保持打开状态
  4. 访问 script.google.com 并使用同一个 google 帐户登录
  5. 创建一个新项目并复制/粘贴上面的代码
  6. 运行“myFunction”6a。第一次运行时确认权限
  7. 得到错误

有人看到我错过了什么吗?

google-sheets google-apps-script

3
推荐指数
1
解决办法
5730
查看次数