最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

webpack在webpack.config.js文件中失败“模块构建失败:未知单词”

IT培训 admin 7浏览 0评论

webpack在webpack.config.js文件中失败“模块构建失败:未知单词”

尝试使用css-loader添加css时,webpack对我不起作用。

os:Windows 10 pro,webpack:4.8.0节点:8.9.4 asl:6.0.0 css-loader:0.28.11 style-loader:0.21.0

的package.json

  {
      "name": "webpack-dev",
      "version": "1.0.0",
      "description": "",
      "main": "index.php",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "build": "./src/app.js"
      },
      "keywords": [],
      "author": "",
      "license": "ISC",
      "devDependencies": {
        "babel-core": "^6.26.3",
        "babel-loader": "^7.1.4",
        "babel-preset-env": "^1.6.1",
        "css-loader": "^0.28.11",
        "extract-text-webpack-plugin": "^3.0.2",
        "file-loader": "^1.1.11",
        "node-sass": "^4.9.0",
        "raw-loader": "^0.5.1",
        "sass-loader": "^7.0.1",
        "style-loader": "^0.21.0",
        "url-loader": "^1.0.1",
        "webpack": "^4.8.1",
        "webpack-cli": "^2.1.3"
      }
    }

app.js

require('./style.css');
require('./scripts.js');

错误信息

Version: webpack 4.8.1
Time: 2157ms
Built at: 2018-05-09 14:13:17
    Asset      Size  Chunks             Chunk Names
bundle.js  3.68 KiB    main  [emitted]  main
Entrypoint main = bundle.js
[./src/app.js] 48 bytes {main} [built]
[./src/scripts.js] 28 bytes {main} [built]
[./src/style.css] 222 bytes {main} [built] [failed] [1 error]

ERROR in ./src/style.css
Module build failed: Unknown word (2:1)

  1 |
> 2 | var content = require("!!./style.css");
    | ^
  3 |
  4 | if(typeof content === 'string') content = [[module.id, content, '']];
  5 |

 @ ./src/app.js 1:0-22

style.css文件

body {
  color: red;
}

我只是使用命令webpack,它每次都失败。这是迄今为止最令人沮丧的工具。没有什么可行的,除非我把!!放在require语句前面,即require(!!'./style.css')

我已经阅读了关于这个我可以在npm,stackoverflow等上找到的每个错误报告,但似乎没有任何指向我的问题。我完全按照webpack模块部分的说明进行操作,但仍然无法正常工作。请帮忙!

编辑:忘记配置文件

const webpack = require('webpack')
const path = require('path')

const config = {
  entry: './src/app.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist')
  },
  mode: 'development',
  module: {
    rules: [
      {
        test: /\.(s*)css$/,
        use: [
          'sass-loader',
          'css-loader',
          'style-loader'
        ]
      },
      {
        test: /\.js$/,
        exclude: /(node_modules)/,
        use: [
          'babel-loader'
        ]
      },
      {
        test: /\.(png|svg|jpg)$/,
        use: [
          'file-loader'
        ]
      }
    ]
  }
};
module.exports = config;

Answer

原来秩序很重要

...

use: [
    "style-loader",
    "css-loader",
    "sass-loader"
]

...
回答如下:

在webpack中,当您在规则中列出多个加载器时,它们将从右到左进行评估(在您的情况下,从下到上),因此您的scss规则应为:

  {
    test: /\.(s*)css$/,
    use: [
      'style-loader',
      'css-loader',
      'sass-loader'
    ]
  }

原因是首先,你希望你的sass编译成css,然后css将通过style-loader在你的html文件中内联。

此外,如果您不使用sass,则可以删除sass-loader。

webpack在webpack.config.js文件中失败“模块构建失败:未知单词”

尝试使用css-loader添加css时,webpack对我不起作用。

os:Windows 10 pro,webpack:4.8.0节点:8.9.4 asl:6.0.0 css-loader:0.28.11 style-loader:0.21.0

的package.json

  {
      "name": "webpack-dev",
      "version": "1.0.0",
      "description": "",
      "main": "index.php",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "build": "./src/app.js"
      },
      "keywords": [],
      "author": "",
      "license": "ISC",
      "devDependencies": {
        "babel-core": "^6.26.3",
        "babel-loader": "^7.1.4",
        "babel-preset-env": "^1.6.1",
        "css-loader": "^0.28.11",
        "extract-text-webpack-plugin": "^3.0.2",
        "file-loader": "^1.1.11",
        "node-sass": "^4.9.0",
        "raw-loader": "^0.5.1",
        "sass-loader": "^7.0.1",
        "style-loader": "^0.21.0",
        "url-loader": "^1.0.1",
        "webpack": "^4.8.1",
        "webpack-cli": "^2.1.3"
      }
    }

app.js

require('./style.css');
require('./scripts.js');

错误信息

Version: webpack 4.8.1
Time: 2157ms
Built at: 2018-05-09 14:13:17
    Asset      Size  Chunks             Chunk Names
bundle.js  3.68 KiB    main  [emitted]  main
Entrypoint main = bundle.js
[./src/app.js] 48 bytes {main} [built]
[./src/scripts.js] 28 bytes {main} [built]
[./src/style.css] 222 bytes {main} [built] [failed] [1 error]

ERROR in ./src/style.css
Module build failed: Unknown word (2:1)

  1 |
> 2 | var content = require("!!./style.css");
    | ^
  3 |
  4 | if(typeof content === 'string') content = [[module.id, content, '']];
  5 |

 @ ./src/app.js 1:0-22

style.css文件

body {
  color: red;
}

我只是使用命令webpack,它每次都失败。这是迄今为止最令人沮丧的工具。没有什么可行的,除非我把!!放在require语句前面,即require(!!'./style.css')

我已经阅读了关于这个我可以在npm,stackoverflow等上找到的每个错误报告,但似乎没有任何指向我的问题。我完全按照webpack模块部分的说明进行操作,但仍然无法正常工作。请帮忙!

编辑:忘记配置文件

const webpack = require('webpack')
const path = require('path')

const config = {
  entry: './src/app.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist')
  },
  mode: 'development',
  module: {
    rules: [
      {
        test: /\.(s*)css$/,
        use: [
          'sass-loader',
          'css-loader',
          'style-loader'
        ]
      },
      {
        test: /\.js$/,
        exclude: /(node_modules)/,
        use: [
          'babel-loader'
        ]
      },
      {
        test: /\.(png|svg|jpg)$/,
        use: [
          'file-loader'
        ]
      }
    ]
  }
};
module.exports = config;

Answer

原来秩序很重要

...

use: [
    "style-loader",
    "css-loader",
    "sass-loader"
]

...
回答如下:

在webpack中,当您在规则中列出多个加载器时,它们将从右到左进行评估(在您的情况下,从下到上),因此您的scss规则应为:

  {
    test: /\.(s*)css$/,
    use: [
      'style-loader',
      'css-loader',
      'sass-loader'
    ]
  }

原因是首先,你希望你的sass编译成css,然后css将通过style-loader在你的html文件中内联。

此外,如果您不使用sass,则可以删除sass-loader。

发布评论

评论列表 (0)

  1. 暂无评论