【发布时间】:2018-06-07 16:32:38
【问题描述】:
我在我的 reactjs 中使用 webpack,并且我确实设置了 sass 加载程序,但我想知道我是否以正确的方式导入文件(它有效,但我只是想知道这样做是否是最佳实践)
import hamburger from "../../node_modules/hamburgers/dist/hamburgers.css";
import bulma from "../../node_modules/bulma/bulma";
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: "babel-loader"
}
},
{
test: /\.s?css$/,
use: [
{
loader: "style-loader" // creates style nodes from JS strings
},
{
loader: "css-loader" // translates CSS into CommonJS
},
{
loader: "sass-loader" // compiles Sass to CSS
}
]
}
]
},
编辑
当我尝试在其中导入 sass 文件时出现错误
import "../../node_modules/bulma/bulma";
import "../../node_modules/bulma-steps-component/bulma-steps";
它们都有 .sass 的扩展名
Error: Can't resolve '../../node_modules/bulma-steps-component/bulma-steps'
我需要再次检查吗?
编辑 2
我尝试添加此检查
test: /(\.css|\.scss|\.sass)$/,
use: [
{
loader: "style-loader" // creates style nodes from JS strings
},
{
loader: "css-loader" // translates CSS into CommonJS
},
{
loader: "sass-loader" // compiles Sass to CSS
}
]
并做到了(我需要 .sass 扩展名才能使其工作)
导入“../../node_modules/bulma/bulma.sass”; 导入“../../node_modules/bulma-steps-component/bulma-steps.sass”;
但现在我明白了
ERROR in ./node_modules/bulma-steps-component/bulma-steps.sass (./node_modules/css-loader!./node_modules/sass-loader/lib/loader.js!./node_modules/bulma-steps-component/bulma-steps.sass)
Module build failed:
$steps-default-color: $grey-lighter !default
$steps-completed-color: $primary !default
$steps-active-color: $primary !default
$steps-horizontal-min-width: 10em !default
$steps-vertical-min-height: 4em !default
$steps-marker-size: 2 !default
$steps-divider-size: .4em !default
$steps-gap-size: .3rem !default
$steps-hollow-border-size: .3em !default
$steps-thin-divider-size: 1px !default
$steps-thin-marker-size: .8em !default
它一直在运行(几乎好像它向我展示了文件中的所有代码)但错误似乎是Undefined variable: "$grey-lighter".
【问题讨论】:
-
你在使用css modules吗?这样你就可以使用像
<p className={hamburger.bio}>lorem</p>这样的类名,而在 hamburger.css 里面你会像.bio{color: #333;} -
我正在使用 css 加载器。在我的模块区。
-
应该可以直接导入然后不用
hamburger from位 -
另外,如果
import bulma from "../../node_modules/bulma/bulma"是一个 css 文件并且它正在工作,似乎你的 webpack 配置设置为解析.css扩展名,所以你可以从汉堡包中省略它。 -
@1252748 - 很酷,我会尝试一下,虽然我在处理 sass 文件时遇到了问题,我认为这是因为我可能需要添加一个“测试”?