【发布时间】:2020-05-29 07:08:37
【问题描述】:
我目前有一个 Angular 项目,我希望使用 purgecss 清除 css。
我已经完成了所有工作,但是当我导入 node_modules 时它会遇到困难,因为它找不到位于 node_modules 文件夹中的路径。
我有当前的app.scss 文件
@import "@fortawesome/fontawesome-pro/scss/fontawesome";
@import "@fortawesome/fontawesome-pro/scss/regular";
@import "./_buttons";
按钮类实际上被称为_buttons.scss,但由于某种原因,postcss 没有选择它,所以我必须定义_,尽管我知道它可以在没有的情况下导入。
如果可能的话,这是我想解决的第一个问题,但第二个问题是,在导入 font awesome 时,它会找到 font awesome 包,但在我查看包后找不到文件 variables 我可以看到没有相对路径,它只是variables。由于这是一个包,有没有办法在 webpack 中缓解这个问题,以阻止这种情况的发生和构建失败?
这是我的webpack.config.js
const purgecss = require("@fullhuman/postcss-purgecss");
module.exports = {
module: {
rules: [
{
test: /\.scss$/,
loader: "postcss-loader",
options: {
modules: true,
importLoaders: 1,
ident: "postcss",
syntax: "postcss-scss",
plugins: () => [
require("postcss-import"),
require("autoprefixer"),
purgecss({
content: ["./**/*.html"],
whitelistPatterns: [/^cdk-|mat-/],
defaultExtractor: content =>
content.match(/[\w-/:]+(?<!:)/g) || []
})
]
}
}
]
}
};
我尝试设置importLoaders: 1,但似乎根本没有任何区别。
如何让 postcss 从文件根目录运行?即使没有在 fontawesome 包中使用的./ 以及识别scss 文件的postcss,也无需使用_ 明确地为所有内容添加前缀
编辑(字体真棒错误):
fontawesome.scss
@import 'variables';
@import 'mixins';
@import 'core';
@import 'larger';
@import 'fixed-width';
@import 'list';
@import 'bordered-pulled';
@import 'animated';
@import 'rotated-flipped';
@import 'stacked';
@import 'icons';
@import 'screen-reader';
错误:找不到“变量”
【问题讨论】:
-
嘿,我也有同样的问题。你最后解决了吗?
-
@BrunoBruzzano 同样在这里你找到什么了吗?
-
@Spawnrad 我想我最终放弃了:-/
-
请在此处查看我的解决方案stackoverflow.com/a/65505377/2221804