Webpack 未加载 Vue 的单文件组件 CSS

2024-03-31

Webpack 正在编译单个文件组件,但不加载 CSS。 HTML 和 Vue 已正确呈现,但没有 CSS。看来是webpack配置的问题。知道出了什么问题吗?

我在用着webpack-dev-server加载开发服务器。

src/index.html

<html>
<head>
    <title>Vue Hello World</title>
</head>
<body>
    <h1>Header</h1>
    <div id="app"></div>
</body>
</html>

src/Hello.vue

<template>
  <p>{{ greeting }} Test!</p>
</template>

<script>
module.exports = {
  data : function () {
      return {
          greeting: 'Hello'
        }
    }
}
</script>

<style scoped>
  p {
    font-size: 18px;
    font-family: 'Roboto', sans-serif;
    color: blue;
  }
</style>

src/main.js

import Vue from 'vue';
import Hello from './Hello.vue';

new Vue({
    el: '#app',
    render: h => h(Hello),
  });

webpack.config.js

const HtmlWebpackPlugin = require('html-webpack-plugin');
const VueLoaderPlugin = require('vue-loader/lib/plugin');

module.exports = {
  entry: './src/main.js',
  module: {
    rules: [
      { test: /\.js$/,  exclude: /node_modules/, use: 'babel-loader' },
      { test: /\.vue$/, exclude: /node_modules/, use: 'vue-loader' },
      { test: /\.css$/, exclude: /node_modules/, use: ['vue-style-loader', 'css-loader']},
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html',
    }),
    new VueLoaderPlugin(),
  ]
};

我刚刚花了 4 个小时才弄清楚这个问题。我只想使用 Webpack,因为它比 Vue CLI 更好地集成到我的 Gulp 管道中。不确定您使用的是哪个版本的 css-loader 以及是否是相同的原因,但希望这也能帮助您。

TL;DR:不要只使用“css-loader”,而是使用:

{
  loader: 'css-loader',
  options: {
    esModule: false
  }
}

我使用 SCSS 也有同样的问题,但对于你的例子来说是:

{ test: /\.css$/, exclude: /node_modules/, use: ['vue-style-loader', { loader: 'css-loader', options: { esModule: false }}]}

我不确定这是否是一个正确的解决方案或只是一个解决方法。我发现了这一点,因为我有一个以前可以工作的旧项目,但是一旦我升级了所有软件包,它就失败了。最终我追踪到了css-loader,更新前是2.1版本,更新后是4.3版本。一直到 3.6 版本都可以运行,然后到 4.0 版本就失败了。然后我只是尝试切换各种选项,这就是修复它的选项(我从未声称知道我在做什么;-))。

Edit: seiluv 添加了一个链接到comment https://github.com/vuejs/vue-style-loader/issues/46#issuecomment-670624576vue-style-loader 的 Github 上确认这是一种解决方法。它显然是一个月前发布的,但我在寻找答案时没有找到它。谢谢塞鲁夫!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Webpack 未加载 Vue 的单文件组件 CSS 的相关文章

随机推荐

  • 在类似热图的图中写入值,但对于seaborn中的分类变量

    我在类似热图的图中绘制了一个数据框 我想写入单元格 但不是单元格的值 但我将该值与条件进行比较并告诉它是哪种错误 例如 import pandas as pd import seaborn as sns matplotlib inline
  • 在 Android 模拟器中不使用 -writable-system 时,Hosts 文件中的更改会丢失

    我通过使用标志 writable system 启动模拟器来更新 Android 模拟器中的 system etc hosts 文件 emulator exe avd tablet writable system 当我在没有 writabl
  • Redshift 中“ADD COLUMN IF NOT EXISTS”的解决方法

    我正在尝试通过 Spark Redshift 执行 S3 复制操作 并且希望在运行复制命令之前修改 Redshift 表结构 以便添加任何缺失的列 它们应该都是 VARCHAR 我能做的是在运行副本之前发送一个 SQL 查询 所以理想情况下
  • inputStream 和 utf 8 有时显示“?”人物

    所以我已经处理这个问题一个多月了 我还通过谷歌检查了几乎所有可能的相关解决方案 但我找不到任何真正解决我的情况的东西 我的问题是我正在尝试从网站下载 html 源代码 但在大多数情况下我得到的是某些文本显示一些 其中的字符 很可能是因为该网
  • 定义类型别名

    我发现 Pascal 的一个非常有用的功能是能够命名数据类型 例如 type person record name string age int end var me person you person etc 你能在 C 中做类似的事情吗
  • jQuery Unslide - 触摸不起作用

    我已经解决了这个问题 我发帖只是为了帮助其他人节省一些时间 我正在将 unslider 用于商业网站 这是一个我正在制作的响应式网站 因此向滑块添加触摸支持的功能很有吸引力 不幸的是 正如作者声称的那样 它不能直接开箱即用 UPDATE我使
  • 学习游戏开发,有什么书推荐吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 通过 SSH 执行 sudo 的正确方法是什么?

    我有一个脚本 它通过 SSH 在远程服务器上运行另一个脚本sudo 但是 当我输入密码时 它会显示在终端上 否则它工作正常 ssh user server sudo script 执行此操作的正确方法是什么 以便我可以输入密码sudo通过
  • 使用 Windows 服务手动实现 IoC

    我是 IoC 的新手 因此一直在遵循 Jeffery Palermo 在他的帖子中提供的示例http jeffreypalermo com blog the onion architecture part 1 http jeffreypal
  • SQL:限制链接到每个连接行的行

    我有某些情况需要 MySQL 查询的某些结果集 让我们先看看当前的查询 然后问我的问题 SELECT thread dateline AS tdateline post dateline AS pdateline MIN post date
  • Python 中(大)1554 x 1554 矩阵的行列式

    我需要在 python 中计算单精度的大型 1554 1554 值矩阵的行列式 这样做时我遇到了运行时警告 import numpy as np from numpy import linalg as LA a np random rand
  • 我可以在不使用 npm、VS、Node 等而只使用 JS 代码本身的情况下转换 ES6-ES5 吗?

    我试图让 Firefox 在 ES6 中运行 Promise 但遇到了触发错误的 let 关键字 语法错误 let 是保留标识符 更改脚本标签以包含 类型 应用程序 javascript 版本 1 7 没有用 所以我正在寻求转换代码 我的情
  • Angular 服务测试出了什么问题?

    我有一个调用外部网络服务的服务 angular module myApp services service autoCmpltDataSvc function http var innerMatch function data return
  • 如何管理 mpz_t 数组

    我正在使用 GMP 我需要一系列mpz t sizeof mpz t 给出 16 但我存储的数字比这个大得多 做mpz t 就地 成长 i e 我是否需要分配更多内存并允许就地增长 或者 GMP 是否在其他地方为它们分配空间并仅保留引用 在
  • 忽略拼写检查中的文本框

    我正在尝试创建一个仅对特定单元格进行拼写检查的宏 我已成功对单元格进行拼写检查 但由于某种原因 拼写检查向导随后继续运行 并尝试检查电子表格上的任何文本框 下面是代码 Range C8 Select Selection CheckSpell
  • 如何限制 .net / mono 进程的内存大小

    假设您有一个用 C 编写的应用程序 单进程 默认情况下 应用程序分配巨大的虚拟内存 远远超过其需要 例如驻留内存约为 10mb 而虚拟内存约为几 GB 在 Java 中 可以使用一个选项来限制这一点 java mx128m 如何对 net
  • 截断 MD5 的 ECDF 图

    在这个link https stackoverflow com questions 8184941 uniform distribution of truncated md5 它表示截断的 MD5 是均匀分布的 我想使用 PySpark 检
  • 在 Python 中迭代并从多维数组中选择特定数组

    想象一下我有这样的东西 import numpy as np arra np arange 16 reshape 2 2 4 这使 array 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 我想创建一个沿着特定
  • JavaFX TextArea如何设置带有自动换行符的文本

    在我的应用程序中 我使用了两个Tabs 在第一个中我放置了一个HtmlEditor在第二个中我放置了一个TextArea HTML 选项卡是默认的 当用户创建 HTML 输入时 他可以切换到TextArea以便直接查看或更改 HTML 源代
  • Webpack 未加载 Vue 的单文件组件 CSS

    Webpack 正在编译单个文件组件 但不加载 CSS HTML 和 Vue 已正确呈现 但没有 CSS 看来是webpack配置的问题 知道出了什么问题吗 我在用着webpack dev server加载开发服务器 src index h