Javascript “如何排除”中的css文件;节点“U模块”;用网页包?

Javascript “如何排除”中的css文件;节点“U模块”;用网页包?,javascript,css,webpack,Javascript,Css,Webpack,在我的javascript项目的一个非常简单的演示中,我使用“css加载程序”加载css文件 package.json { "devDependencies": { "webpack": "^4.17.1", "webpack-cli": "^3.1.0", "css-loader": "^1.0.0", "style-loader": "^0.23.0" } } webpack.config.js const path = require('path'

在我的javascript项目的一个非常简单的演示中,我使用“css加载程序”加载css文件

package.json

{
  "devDependencies": {
    "webpack": "^4.17.1",
    "webpack-cli": "^3.1.0",
    "css-loader": "^1.0.0",
    "style-loader": "^0.23.0"
  }
}
webpack.config.js

const path = require('path')

module.exports = {
    mode: 'development',
    entry: './entry.js',
    output: {
        path: __dirname,
        filename: 'bundle.js'
    },
    module: {
        rules: [{
            test: /\.css$/,
            exclude: path.resolve('./node_modules/'),
            use: [
                {loader: 'style-loader'},
                {loader: 'css-loader'}
            ]
        }]
    }
}
请注意,我已经排除了“节点\模块”目录

但是当我运行
npxwebpack
时,输出

Hash: 3d4b3f13f73f8b4ff12f
Version: webpack 4.17.1
Time: 255ms
Built at: 2018-09-12 18:13:34
    Asset    Size  Chunks             Chunk Names
bundle.js  23 KiB    main  [emitted]  main
Entrypoint main = bundle.js
[./entry.js] 78 bytes {main} [built]
[./index.css] 1.04 KiB {main} [built]
[./node_modules/css-loader/index.js!./index.css] ./node_modules/css-loader!./index.css 196 bytes {main} [built]
    + 3 hidden modules
仍然包含关于“节点\模块”的内容

我找不到问题在哪里,如何解决

更新:

我为这个问题做了一个演示:
,您可以克隆并尝试使用它。

您可能不需要
path.resolve
。Resplce
exclude:path.resolve('./节点\模块/')
with


排除:/node\u模块/
<代码>路径。解决需要
\uu dirname

这里有点误解Webpack当它需要编译其他资源(如.css、.scs等)时,它本身只知道javascript。我们使用各自的加载程序来编译这些非javascript资源

这里实际发生的事情webpack使用
css加载程序
(节点模块)从入口点开始编译树中的所有css文件。它首先使用css加载器的
index.js
中的util转换为字符串:

loaderUtils.stringifyRequest(this, require.resolve("./css-base.js")) // line 153 css-loader/lib/loader.js


上面这一行解释了css加载器如何编译和绑定
index.css的css代码,这些代码位于
entry.js
中。这里的要点是,这些文件不是多余的,它们帮助webpack绑定非js文件。虽然webpack生成的输出有点混乱,但我还是建议您研究
css加载程序的源代码,它在某种程度上为您提供了编译css的可理解概念。

@br谢谢,但是
排除:/node\u modules/
也不起作用。它给出了完全相同的输出
[./node_modules/css-loader/index.js!./index.css] ./node_modules/css-loader!./index.css 196 bytes {main} [built]