模块解析失败:错误:semantic / dist / semantic.min.css意外字符' @' (11:0)

时间:2017-02-16 10:41:23

标签: webpack semantic-ui react-boilerplate semantic-ui-react

我使用当前版本的react-boilerplate(使用webpack)并安装了Semantic-UI-React,如官方文档中所述http://react.semantic-ui.com/usage

当我启动服务器时,我得到:

Server started ! ✓

Access URLs:
-----------------------------------
Localhost: http://localhost:3000
      LAN: http://192.168.100.103:3000
-----------------------------------
Press CTRL-C to stop

webpack built dba595efb772df0727e8 in 11657ms

ERROR in ./semantic/dist/semantic.min.css
Module parse failed: /Users/standardnerd/development/template/semantic/dist/semantic.min.css Unexpected character '@' (11:0)
You may need an appropriate loader to handle this file type.
|  *
|  */
| @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic&subset=latin);/*!
|  * # Semantic UI 2.2.7 - Reset
|  * http://github.com/semantic-org/semantic-ui/
 @ ./app/app.js 20:0-43
 @ multi main

什么样的合适的装载机'我需要吗?

解析器不喜欢/semantic/dist/semantic.min.css中的@import语句:

@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic&subset=latin);

如何解决此问题?

3 个答案:

答案 0 :(得分:3)

如果您在规则中使用include指令,请确保还包含node_modules:

{
  test: /\.css$/,
  use: ['style-loader', 'css-loader', 'resolve-url-loader'],
  include: [
    path.join(__dirname, 'src'),
    /node_modules/
  ],
},

这应该可以解决问题,因为您在加载css时指示webpack确保包含节点模块,以便在导入语义ui css包时可以正确使用css-loader。

答案 1 :(得分:2)

步骤1:安装以下软件包

npm install --save-dev css-loader sass-loader node-sass url-loader file-loader

Step2:然后,在webpack.config.js文件中:

module: {
    rules: [
        {
            test: /\.css$/,
            loader: 'style-loader!css-loader'
        },
        {
            test: /\.s[a|c]ss$/,
            loader: 'sass-loader!style-loader!css-loader'
        },
        {
            test: /\.(jpg|png|gif|jpeg|woff|woff2|eot|ttf|svg)$/,
            loader: 'url-loader?limit=100000'
        }
    ]
}

第3步:在模块中,

如果您通过npm包npm install --save-dev semantic-ui-css安装了语义css,则导入条目应为import './node_modules/semantic-ui-css/semantic.min.css'

如果尚未通过npm安装semantic-ui-css,请使用relavent导入声明。

答案 2 :(得分:0)

我可以解决安装sass-loader的问题 - 因为我还是要使用scss。

npm install sass-loader node-sass webpack --save-dev

./semantic/dist/semantic.min.css重命名为./semantic/dist/semantic.min.scss 并修改配置:

    test: /\.scss$/,
      use: [{
        loader: 'style-loader',
      }, {
        loader: 'css-loader',
      }, {
        loader: 'sass-loader',
      }],