在这里反应初学者。我的应用程序使用 create-react-app,并且我正在使用react-slick进行轮播。我正在尝试按照 react-slick 设置中提供的说明进行操作,但以下内容对我不起作用:
@import "~slick-carousel/slick/slick.css";
@import "~slick-carousel/slick/slick-theme.css";
我收到以下错误:
./src/components/Homepage.scss
Module not found: Can't resolve '~slick-carousel/slick/slick.css' in '/Users/simon/Dev/frischideas/site-new/src/components'
如果我将 css 从 CDN 添加到 index.html,它会起作用,但我宁愿避免该网络调用,因为我相信它会影响初始加载时页面的呈现。
我尝试按照配置 create-react-app 以使用相对路径的说明进行操作,但这对我也不起作用。也许我完全误解了,但我认为 ~ 符号可以让我从 /node_modules 中的包中导入 scss。
任何建议/澄清将不胜感激。
更新:从我的 webpack.config 文件中添加设置(其中大部分是 create-react-app 的默认设置)。
{
test: /\.scss$/,
use: [
require.resolve('classnames-loader'),
require.resolve('style-loader'), {
loader: require.resolve('css-loader'),
options: {
importLoaders: 1,
modules: 1,
localIdentName: "[name]__[local]___[hash:base64:5]"
},
},{
loader: require.resolve('postcss-loader'),
options: {
// Necessary for external CSS imports to work
// https://github.com/facebookincubator/create-react-app/issues/2677
ident: 'postcss',
plugins: () => [
require('postcss-flexbugs-fixes'),
autoprefixer({
browsers: [
'>1%',
'last 6 versions',
'Firefox ESR',
'not ie < 9', // React doesn't support IE8 anyway,'
],
remove: false,
flexbox: 'no-2009',
}),
],
},
},{
loader: require.resolve('sass-loader'),
options: {
outputStyle: 'expanded'
}
}
],
}