在这里反应初学者。我的应用程序使用 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'
}
}
],
}
原文由 flysi3000 发布,翻译遵循 CC BY-SA 4.0 许可协议
我一直在努力解决这个问题,我终于找到了解决方案:
node_modules
文件夹并找到slick-carousel
文件夹slick.scss
和slick-theme.scss
并打开它们_slick.scss
和_slickTheme.scss
的单独文件slick.scss
和slick-theme.scss
复制所有文件并将它们放入新创建的文件中(_slick.scss
和_slickTheme.scss
)app.scss
文件'./ajax-loader.gif'
错误并且在那之后无法解决字体错误slick-carousel
css 它自己使用,为此我们可以简单地进入您新创建的_slickTheme.scss
并找到这些行