标签: postcss

如果将 postcss-loader 与适当的插件一起使用,是否需要 css-loader?

postcss-import用来处理我的进口,并cssnano缩小。在我的 Webpack 配置中,我一直在使用以下设置css-loader...

{
  loader: 'css-loader',
  options: {
    url: false,
    import: false,
    minimize: false,
    importLoaders: 1,
    souceMap: true,
  }
}
Run Code Online (Sandbox Code Playgroud)

...但是当我删除所有内容时似乎仍然可以正常加载,所以现在我post-css之前只有style-loader. 我可以安全地css-loader从我的 css 构建中省略,还是它提供了一些其他必要的功能?我还没有看到一个webpack.config.js不使用的文件css-loader,所以我想在这里保持谨慎!:)

webpack postcss css-loader postcss-import postcss-loader

6
推荐指数
1
解决办法
1390
查看次数

JSX 中的 CSS 类名和来自 Webpack(或其他编程方式)的 CSS 输出的缩小/处理

我想在我的输出 CSS 文件和从我的 React 组件渲染的 JSX 中缩小我的类名(用于非常小的源保护目的)类似于这个 Webpack 插件:https : //github.com/vreshch/optimize-css -classnames-plugin

我可以使用任何现有的选项来实现这一点,无论是 Webpack 还是其他方式?非常感谢。

从:

<div className="long-class-name"></div>

.long-class-name {
 }
Run Code Online (Sandbox Code Playgroud)

到:

<div class="a"></div>
.a {
}
Run Code Online (Sandbox Code Playgroud)

javascript css reactjs webpack postcss

6
推荐指数
1
解决办法
5276
查看次数

向 Vue cli 3 添加 PostCSS 支持的正确方法

我们如何将 PostCSS 支持添加到 Vue cli 3(我使用的是 beta 7)?有插件吗?它不支持开箱即用。

当我尝试像这样导入时

import './index.pcss'

使用默认 cli 生成的项目

./src/index.pcss
Module parse failed: Unexpected token (1:0)
You may need an appropriate loader to handle this file type.
| .sofa {
|   font-family: "sofachrome", serif;
| }
 @ ./src/main.js 5:0-22
Run Code Online (Sandbox Code Playgroud)

我的 postcsssrc.js:

module.exports =
  {
    'plugins': {
      'autoprefixer': {},
      'postcss-smart-import': {},
      'postcss-custom-properties': {},
      'postcss-nested': {}
    }
  }
Run Code Online (Sandbox Code Playgroud)

vue.js postcss vue-cli

6
推荐指数
2
解决办法
6966
查看次数

如何让 postcss-loader、postcss-cssnext 和 sass-loader 在 webpack 中协同工作?

这是我Webpackscss/css文件配置。

...
{
    test: /\.s?css$/,
    use: [
      'style-loader',
      { loader: 'css-loader', options: { importLoaders: 2 } },
      {
        loader: 'postcss-loader',
        options: {
          ident: 'postcss',
          plugins: loader => [
            require('postcss-import')({ root: loader.resourcePath }),
            require('cssnano')(),
            require('postcss-cssnext')(),
          ]
        }
      },
      'sass-loader',
    ]
}
...
Run Code Online (Sandbox Code Playgroud)

问题是,当我使用cssnext类似gray(100)的函数时,输出CSS文件在该函数所在的位置有一个空值。我想知道我在这里做错了什么。

background-color: gray(100);输出到background-color: ;

我是 postcss 的新手,所以我真的不知道它是如何工作的,也不知道如何正确配置它。

webpack postcss sass-loader cssnext postcss-loader

6
推荐指数
1
解决办法
6913
查看次数

在包裹上发布 css autoprefixer 问题未显示前缀

Autoprefixer 不适用于包裹 1.9.7:我有我的 src 文件夹,我有 .postcssrc 文件和样式文件在 .postcssrc 文件内的同一文件夹内容中: { "plugins": { "autoprefixer": true } }

包裹与npm install -g parcel-bundler pacckage json dev depenndacies一起安装:

"devDependencies": {
 "autoprefixer": "^9.1.3",
 "node-sass": "^4.9.3",
 "postcss-modules": "^1.3.2"
},
Run Code Online (Sandbox Code Playgroud)

也许有人知道可能是什么问题?

autoprefixer postcss parceljs

6
推荐指数
1
解决办法
1199
查看次数

导入全局 css 自定义变量

我正在尝试将 webpack 与 postcss 一起使用来导入包含我的 css 自定义变量的 theme-variables.css 文件。

//theme-variables.css
:root {
    --babyBlue: blue;
}
Run Code Online (Sandbox Code Playgroud)

基本上我希望任何导入主题变量的 css 能够访问这些 css 自定义属性并使用 postcss-css-variables 解析为静态值。

//style.css
@import "./theme-variable.css";

div {
    display: flex;
    color: var(--babyBlue);
}
Run Code Online (Sandbox Code Playgroud)

变成

//main.css
div {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    color: blue;
}
Run Code Online (Sandbox Code Playgroud)

但是我不断收到 webpack 错误 variable --babyBlue is undefined and used without a fallback

main.js 最终看起来像这样:

:root {
    --babyBlue: blue;
}
div {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    color: undefined;
}
Run Code Online (Sandbox Code Playgroud)

这是我的 webpack(index.js 需要styles.js):

const path …
Run Code Online (Sandbox Code Playgroud)

css webpack postcss postcss-import

6
推荐指数
1
解决办法
7628
查看次数

在parcel.js 中为已部署的网站添加Autoprefixer 破坏了所有网站样式?

我有一个使用 Parcel.js 打包器构建的已部署项目。

应用 CSS Autoprefixer 并重新部署网站后,我网站的几乎所有样式都已损坏。我真的不确定是什么导致了这种情况,不幸的是,对于我遇到的问题,我什至找不到一个类似的问题。

我首先在我的开发依赖项中添加了 Autoprefixer:

"devDependencies": {
    "autoprefixer": "^9.5.1",
    "parcel-bundler": "^1.12.3",
    "postcss-modules": "^1.4.1"
  },
Run Code Online (Sandbox Code Playgroud)

然后我在我的根文件夹中创建了一个 .postcssrc 配置文件,其中包含:(我在站点中使用了相当多的 CSS-Grid 布局,因此有以下配置)

{
  "modules": true,
  "plugins": {
    "autoprefixer": {
      "grid": "autoplace"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我还在根文件夹中为浏览器目标创建了一个 .browserslistrc 配置文件,其中包含:

defaults
Run Code Online (Sandbox Code Playgroud)

我为浏览器目标选择了默认配置,因为它在 Autoprefixer 文档中提到,默认选项包含各种浏览器,而且因为我没有任何特定需求,这似乎是最好的选择。

我已尽力准确描述事件,如果您需要更多信息,请告诉我。

更新:我认为问题是"autoprefixer": { "grid": "autoplace"在 autoprefixer 文档中提到的,选择这个选项可能会导致已经部署/建立的没有 autoprefixer 的网站出现问题。所以我将我的更改回滚到它的 pre-autoprefixer 状态并没有再次完成所有步骤,但是这次我没有启用该grid: autoplace选项并选择了默认值,grid: true但我再次遇到了同样的问题。

我认为这可能与 Parcel 或我在 Parcel 中使用 postcss 的方式有关。

javascript css autoprefixer postcss parceljs

6
推荐指数
2
解决办法
2698
查看次数

由于未定义变量的 postcss 规则,编译 scss 文件的 NodeJs 脚本失败

我正在使用scss-bundle导入scss文件并解析他的所有@import语句,以便稍后将其再次保存为scss文件。

这工作正常,下面是一个例子,看看它是如何工作的:

scss-bundle.ts

import { Bundler } from 'scss-bundle';
import { relative } from 'path';
import { writeFile } from 'fs-extra';

/** Bundles all SCSS files into a single file */
async function bundleScss(input, output) {
  const {found, bundledContent, imports} = await new Bundler()
    .Bundle(input, ['./src/styles/**/*.scss']);
  if (imports) {
    const cwd = process.cwd();

    const filesNotFound = imports
      .filter((x) => !x.found)
      .map((x) => relative(cwd, x.filePath));

    if (filesNotFound.length) {
      console.error(`SCSS imports failed \n\n${filesNotFound.join('\n - …
Run Code Online (Sandbox Code Playgroud)

sass node.js postcss

6
推荐指数
1
解决办法
129
查看次数

在 Svelte 中构建应用程序时 Vite PostCSS 模块错误

我在 Svelte 中遇到了这个奇怪的错误;每次我运行时npm run dev,都会出现这个vite错误:

[vite] Internal server error: Failed to load PostCSS config (searchPath: /Users/Documents/Personal projects): [Failed to load PostCSS config] Failed to load PostCSS config (searchPath: /Users/Documents/Personal projects): [Failed to load PostCSS config] Failed to load PostCSS config (searchPath: /Users/Documents/Personal projects): [Error] Cannot find module 'autoprefixer'
Run Code Online (Sandbox Code Playgroud)

我是 vite 新手,所以我花了一个小时的研究,找出如何导出模块,我能够通过创建一个postcss.config.cjs文件并在文件中添加来修复它:

module.exports = {
    autoprefixer: {}
}
Run Code Online (Sandbox Code Playgroud)

我希望这可以帮助遇到相同/类似错误的任何人。

autoprefixer postcss svelte vite

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

如何修复 VSCode 中的错误:at-rule 或选择器预期scss(css-ruleorselectorexpected)

我正在尝试将 TailwindCSS 与 SCSS 结合使用,但打开此文件时 VSCode 总是给我一条错误消息,我该如何修复它?

此错误的图像

我在 postcss 文件中的配置:

module.exports = {
    plugins: {
        'postcss-import': {},
        'tailwindcss/nesting': {},
        tailwindcss: {},
        autoprefixer: {},
    },
};
Run Code Online (Sandbox Code Playgroud)

我在 VSCode settings.json 中的配置:

{
    ...
    "css.lint.unknownAtRules": "ignore",
    "css.lint.emptyRules": "ignore",
    "scss.lint.unknownAtRules": "ignore",
    "scss.lint.emptyRules": "ignore"
}
Run Code Online (Sandbox Code Playgroud)

我发现错误原因#{!important}在 .scss 文件中

sass visual-studio-code postcss tailwind-css

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