React初学者在这里。我的应用使用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'
如果我从CDN将css添加到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'
}
}
],
}
9条答案
按热度按时间vbkedwbf1#
您将更改为:
删除**~**
uoifb46i2#
你可能会错过这个
jjhzyzn03#
你还需要安装用于CSS和字体的slick-carousel。**这就是诀窍所在。**干杯...
首先,安装
slick-carousel
如果你用的是Yarn,你可以用
然后在App.js文件中导入CSS文件。
fjnneemd4#
我一直在纠结这个问题,我终于找到了解决方案:
1.只要进入你的
node_modules
文件夹并找到slick-carousel
文件夹1.在Slick文件夹中查找
slick.scss
和slick-theme.scss
并将其打开1.在项目的样式文件夹中创建两个名为
_slick.scss
和_slickTheme.scss
的单独文件1.从
slick.scss
和slick-theme.scss
复制所有文件,并将它们放入新创建的文件(_slick.scss
和_slickTheme.scss
)1.将它们导入
app.scss
文件1.现在,如果你像我一样使用webpack,我猜你会得到无法解决
'./ajax-loader.gif'
错误,并且无法解决字体错误1.事实上,这些文件已经被
slick-carousel
css使用了,为此我们可以简单地进入你新创建的_slickTheme.scss
并找到这些行1.注解掉它们
ncecgwcz5#
您需要有适当的加载器。使用style-loader与css-loader组合用于CSS。使用file-loader和url-loader以便加载CSS文件中链接的字体和图像。
因此,最后,您的webpack.config.js应该包含如下内容:
之后,您可以简单地将样式导入到应用程序入口点(例如 /src/index.js):
ctehm74n6#
它失败是因为你在你的应用中导入css模块,而来自slick的样式没有被应用,因为它们被缓存了。我已经在我的项目中修复了它,如下所示:
在您的样式中。scss文件将此
0yycz8jy7#
你错过了安装一个光滑的旋转木马.试试这个代码
Click here for more Details
xu3bshqb8#
要导入样式,请确保您已经安装了slick-carousel:
然后:
注意:但是请注意,slick-carousel对jQuery具有对等依赖性,您或您的同事可能不希望在控制台输出中看到这一点,因此您可以随时从那里获取CSS,并将其转换为您可能正在使用的任何CSS in JS解决方案。
此信息取自react-slick documentation page。
6yjfywim9#
您需要安装
react-slick
CSS文件,不带~
符号,如下所示:并且您还需要将它们导入到显示slick滑块的组件中
例如,如果你有一个滑块组件要用在主页组件中,你需要在主页中导入光滑的CSS文件。2我很喜欢。
如果您要将方向更改为
rtl
,则需要使用ltr
作为滑块并选中要安装的
slick-carousel