webpack - 我在 Webpack 中收到 .css 模块解析失败错误,即使我已经在 module.rules 中有一个 css-loader
问题描述
我正在使用 Electron 和 React 构建我的应用程序,并希望我的应用程序显示Monaco editor。我目前正在构建我的 React Webpack。我的应用程序为 React 和 Electron 提供了单独的 Webpack 文件。Webpack 非常新!
对于我的 monaco-editor Node 模块中的所有 .css 文件,我收到以下错误。
ERROR in ./node_modules/monaco-editor/esm/vs/base/browser/ui/findinput/findInput.css 7:0
Module parse failed: Unexpected token (7:0)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
我已经在我的 webpack.react.config.js 文件中包含了一个 css-loader 和 style-loader,所以我很困惑这里似乎是什么问题。我已经尝试过的一些事情:
- 我已经指定我的 css-loader 应该专门用于我的 monaco-editor 包,尽管我不知道这是否会是一个大问题,因为该应用程序目前没有任何单独的样式。
- 我已经尝试查看我的加载程序的顺序,包括 css 和列出的其他文件,但我认为那里没有问题。除非有人可以向我指出否则!
关于发生了什么,我最好的猜测是我对 Webpack 的加载器缺乏了解,我认为我在那里做错了什么。一直在深入研究 Webpack 文档,但仍然很卡。
我的 webpack.react.config.js 文件
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
const MONACO_DIR = path.resolve(__dirname, './node_modules/monaco-editor');
// Monaco Editor uses CSS imports internally,
// so we need a separate css-loader for app and monaco-editor packages
module.exports = {
resolve: {
extensions: ['.tsx', '.ts', '.js', '.jsx', '.css'],
mainFields: ['main', 'module', 'browser'],
},
entry: './src/index.js',
target: 'electron-renderer',
devtool: 'source-map',
module: {
rules: [
{
test: /\css$/i, include: MONACO_DIR, use: ['style-loader', 'css-loader'],
},
{
test: /\.(js|ts|tsx|jsx)$/,
exclude: /node_modules/,
use: ['babel-loader'],
},
],
},
devServer: {
contentBase: path.join(__dirname, '../dist/renderer'),
historyApiFallback: true,
compress: true,
hot: true,
port: 4000,
publicPath: '/',
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'js/[name].js',
},
plugins: [new HtmlWebpackPlugin(), new MonacoWebpackPlugin()],
};
解决方案
哇...这是因为我没有将 style-loader 安装为 devDependency。掌心。
推荐阅读
- java - 如何将 Java EE struts2 常规项目转换为 Netbeans 中的 maven 支持项目
- python-3.x - Python 3:存储数据而不将其加载到内存中
- ios - 如何在 swift 4 中创建与 swiggy 应用程序支付屏幕相同的设计?
- android - 无法让默认微调器工作 - 为什么?
- php - 通过url参数传递参数在php中包含函数
- r - 将标点符号添加到 data.frame r 中的列表和 coreace
- wso2 - 使用 HTTP 请求访问 API
- python - 根据其他行中的值删除行
- android - 如何转换完整的字符串 10 + 20 - 25;像文本一样,从 EditText 获得,加倍?
- python - IndexError:列表索引超出循环范围