导入模块失败's css文件
Fail to import a module's css file
在我的React项目中,我使用这个gem来创建一个面板:https://github.com/luqin/react-icheck
我将它们的第一个示例复制粘贴到代码中。
在Github页面上,它说我应该像这样导入css
:
import 'icheck/skins/all.css'; // or single skin css
如果我这样做,我会得到错误:
ERROR in ./~/icheck/skins/all.css
Module parse failed: node_modules/icheck/skins/all.css Line 3: Unexpected token ILLEGAL
You may need an appropriate loader to handle this file type.
| /* iCheck plugin skins
| ----------------------------------- */
| @import url("minimal/_all.css");
| /*
| @import url("minimal/minimal.css");
如果我改为这样做导入:
import 'icheck';
没有更多错误,但页面没有任何复选框。
那么,我该如何正确地进行导入呢?
我也尝试过使用style-loader
,所以我的代码看起来像这样:
import React from 'react';
import {Checkbox, Radio} from 'react-icheck';
import 'icheck';
require("style!raw!icheck/skins/all.css");
var Criteria = React.createClass({
getInitialState: function() {
return {showGallery: false, showOtherCriteria: false};
},
toggleShowGallery: function() {
this.setState({showGallery: !this.state.showGallery});
},
toggleShowOtherCriteria: function() {
this.setState({showOtherCriteria: !this.state.showOtherCriteria});
},
render: function() {
return (
<div>
<div onClick={this.toggleShowOtherCriteria} className="btn-group" role="group" aria-label="...">
<button type="button" className="btn btn-default">Cold</button>
</div>
{style.use()}
{this.state.showOtherCriteria
?
<div onClick={this.toggleShowGallery} id="channels" className="span12">
<Checkbox
checkboxClass="icheckbox_square-blue"
increaseArea="20%"
label="Checkbox"
/>
<Checkbox
id="checkbox1"
checkboxClass="icheckbox_square-blue"
increaseArea="20%"
/>
<label for="checkbox1">First name</label>
<Radio
name="aa"
radioClass="iradio_square-blue"
increaseArea="20%"
label="Radio"
/>
</div>
:
null
}
{style.unuse()}
</div>
);
}
});
module.exports = Criteria;
然而,现在我得到了:
Module not found: Error: Cannot resolve module 'raw'
如何正确使用style-loader
?
在您的webpack配置加载程序部分添加
module: {
loaders: [
{
test : /'.scss$/,
include : path.join(__dirname, 'sass'),
loaders : ["style", "css?sourceMap", "sass?sourceMap"]
}
]
}
通过添加此代码,您添加了三个加载器,即(style、css和sass)。
这三台装载机执行以下操作
- 使用sass加载程序将scs文件转换为纯CSS
- 在CSS加载器的帮助下解析CSS中的所有导入和url(…)
- 使用样式加载器将这些样式插入到页面中
然后从应用程序的入口点要求您的css文件,例如app.js
require('app.scss');
编辑:如果您不使用sass,则不需要sass加载程序,还需要更改test:/'.css$/
使用npm i css-loader style-loader
将webpack
添加到package.json
中的devDependencies
中。之后,将css-loader
和style-loader
添加到webpack.config.js
中的加载程序列表中。样品
module.exports = {
module: {
loaders: [{
test: /'.css?$/,
loaders: ['style', 'css']
}]
}
}
将加载器添加到config后,就可以在组件中导入css文件
相关文章:
- 如何修复:当javascript更改DOM时,iOS会删除CSS文件
- 使用Javascript读取CSS文件并动态更改页面
- js和css文件-在publichtml外部或内部
- Google PageSpeed Insights与多个CSS文件
- Javascript:动态更改CSS文件+Cookie
- 没有在django项目中加载CSS文件
- 在企业应用程序框架中包含js/css文件的最佳实践是什么
- Chrome审核:在外部CSS文件之间的头中发现了1个内联脚本块&”;
- 使用新的 CSS 文件覆盖当前网站
- 多余的JS和CSS文件
- 快递.js无法获取我的 CSS 文件
- 无法查找元素'手动加载CSS文件时的CSS属性
- jquery移动应用程序无法使用jquryMobile框架JS和css文件的相对路径
- 不同的引导 CSS 文件
- 加载CSS文件并覆盖上一个文件
- 使用 JavaScript 动态加载 CSS 文件
- 如何使用谷歌页面速度CSS加载脚本延迟多个CSS文件
- 在 html 文件中包含无缓存元标记是否也会阻止缓存该 html 文件中链接的 js 和 css 文件
- Spring MVC 集成 js 和 css 文件
- 如何将 JavaScript 和 CSS 文件添加到 MagentoModule