webpack-dev-server 如何在不刷新页面的情况下重新加载 css

2024-01-31

当我更改 .vue 文件和 .css 文件中的样式时,我不希望页面刷新,并且希望样式自动更改。但现在当我更改样式时页面总是刷新。

我正在使用 vue-cli 生成 webpack 配置文件。

as below

webpack.dev.conf.js

const devWebpackConfig = merge(baseWebpackConfig, {
  module: {
    rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: false })
  },
  // cheap-module-eval-source-map is faster for development
  devtool: config.dev.devtool,

  // these devServer options should be customized in /config/index.js
  devServer: {
    clientLogLevel: 'warning',
    historyApiFallback: {
      rewrites: [
        { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
      ],
    },
    hot: true,
    contentBase: false, // since we use CopyWebpackPlugin.
    compress: true,
    host: HOST || config.dev.host,
    port: PORT || config.dev.port,
    open: config.dev.autoOpenBrowser,
    overlay: config.dev.errorOverlay
      ? { warnings: false, errors: true }
      : false,
    publicPath: config.dev.assetsPublicPath,
    proxy: config.dev.proxyTable,
    quiet: true, // necessary for FriendlyErrorsPlugin
    watchOptions: {
      poll: config.dev.poll,
    }
  },
  plugins: [
    new webpack.DefinePlugin({
      'process.env': require('../config/dev.env')
    }),
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
    new webpack.NoEmitOnErrorsPlugin(),
    // https://github.com/ampedandwired/html-webpack-plugin
    new HtmlWebpackPlugin({
      filename: 'index.html',
      template: 'index.html',
      inject: true
    })
  ]
})

module.exports = new Promise((resolve, reject) => {
  portfinder.basePort = process.env.PORT || config.dev.port
  portfinder.getPort((err, port) => {
    if (err) {
      reject(err)
    } else {
      // publish the new Port, necessary for e2e tests
      process.env.PORT = port
      // add port to devServer config
      devWebpackConfig.devServer.port = port

      // Add FriendlyErrorsPlugin
      devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({
        compilationSuccessInfo: {
          messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`],
        },
        onErrors: config.dev.notifyOnErrors
        ? utils.createNotifierCallback()
        : undefined
      }))

      resolve(devWebpackConfig)
    }
  })
})

util.js

exports.cssLoaders = function (options) {
  options = options || {}

  const styleLoader = {
    loader: 'style-loader',
    options: {
      sourceMap: options.sourceMap
    }
  }

  const cssLoader = {
    loader: 'css-loader',
    options: {
      sourceMap: options.sourceMap
    }
  }

  const postcssLoader = {
    loader: 'postcss-loader',
    options: {
      sourceMap: options.sourceMap
    }
  }

  // generate loader string to be used with extract text plugin
  function generateLoaders (loader, loaderOptions) {
    const loaders = options.usePostCSS ? [styleLoader, cssLoader, postcssLoader] : [styleLoader, cssLoader]

    if (loader) {
      loaders.push({
        loader: loader + '-loader',
        options: Object.assign({}, loaderOptions, {
          sourceMap: options.sourceMap
        })
      })
    }

    // Extract CSS when that option is specified
    // (which is the case during production build)
    if (options.extract) {
      return ExtractTextPlugin.extract({
        use: loaders,
        fallback: 'vue-style-loader'
      })
    } else {
      return ['vue-style-loader'].concat(loaders)
    }
  }

  // https://vue-loader.vuejs.org/en/configurations/extract-css.html
  return {
    css: generateLoaders(),
    postcss: generateLoaders(),
    less: generateLoaders('less'),
    sass: generateLoaders('sass', { indentedSyntax: true }),
    scss: generateLoaders('sass'),
    stylus: generateLoaders('stylus'),
    styl: generateLoaders('stylus')
  }
}

// Generate loaders for standalone style files (outside of .vue)
exports.styleLoaders = function (options) {
  const output = []
  const loaders = exports.cssLoaders(options)

  for (const extension in loaders) {
    const loader = loaders[extension]
    output.push({
      test: new RegExp('\\.' + extension + '$'),
      use: loader
    })
  }

  return output
}

我已经添加了样式加载器,但它根本不起作用。

配置很复杂,我不知道如何解决。

webpack-开发服务器 2.11.3

网页包 3.12.0


None

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

webpack-dev-server 如何在不刷新页面的情况下重新加载 css 的相关文章

  • React Native 无法访问 Cloud Firestore 后端

    我之前使用的是 firebase 实时数据库 但现在想切换到 Cloud Firestore 但即使经过身份验证 也会收到以下错误 我目前正在使用 Android Simulator 尝试禁用我的实时数据库 但找不到解决方案 Firebas
  • 从 puppeteer PDF 中删除分页符?

    我目前正在尝试查看是否有一种方法可以删除我的 puppeteer PDF 中的分页符 因为我当前的 PDF 设置中的一些分页符正在以一种奇怪的方式切断文本 我正在谈论的内容的屏幕截图 我的傀儡代码 app get companyId pdf
  • 解释一下这个令人困惑的 dojo 教程声明语法

    我正在阅读使用的语法道场的声明 http dojotoolkit org documentation tutorials 1 8 declare 用于班级创建 描述很混乱 The declare function is defined in
  • 如何默认或通过 CSS 将详细信息元素设置为 OPEN

    HTML5 添加了两个新元素 可用于标记文章的目录 details and summary 详细信息元素默认为关闭状态 隐藏除摘要元素之外的所有内容 单击时 它会展开以显示其内容 当它执行此操作时 它会向详细信息元素添加一个 open 属性
  • 平均分配固定大小容器的空间。 Flexbox 的案例?

    如何设计 HTML CSS 结构 将固定大小的容器水平分成三部分 第一部分的高度应与其内容需求一样高 第二部分和第三部分将共享剩余的空间五五十 无论它们的内容如何 如果其内容的大小超过此限制 则该部分应该是可滚动的 它的 HTML 部分很简
  • 修复 Raphaël 路径节点上 Tipsy 工具提示的位置

    这是一个非常具体且有些复杂的问题 所以我设置了一个最小测试用例 http reveal dk 8080 revealit dk tipsytest 在阅读本文的其余部分之前 您可能应该先了解一下 我的页面显示悬停时突出显示区域的图像Raph
  • 如何使用 HTML 和 CSS 在我的网站上显示社交图标?

    我拼命尝试向我的网站添加一些图标 但无法让它们正确显示 我想要的只是一个包含图像并在线显示它们的容器 然后我想在该容器和图像之间添加一些填充 仅此而已 看这里我的方法 如果有人可以帮助我并纠正我的代码 使其真正有效 我会非常高兴 在我的 H
  • 如何跨多个 React Redux 组件使用 requestAnimationFrame 实现游戏循环?

    努力思考最好的解决办法 我可以使用递归调用requestAnimationFrame有一个游戏循环 export interface Props name string points number onIncrement gt void o
  • 文件缓存:查询字符串与上次修改时间?

    我正在研究缓存网站资源的方法 并注意到大多数与我类似的网站都使用查询字符串来覆盖缓存 例如 css style css v 124942823 后来 我注意到每当我保存 style css 文件时 最后修改的标头都会 更新 使得查询字符串变
  • 即使我的情况按预期发生变化,Angular ngClass 也不会更新我的课程

    我正在创建的模板中有类似的内容 div class nng 3 div 价值app layout isNavbarFixed等用零或一初始化 并且页面第一次加载时 适当的类被插入到我的div 不过 此后通
  • 浮动CSS属性导致父div不继承高度?

    我在 div 中有一个元素设置为float right但是 它会导致最外面的 div 不环绕 这是jsfiddle http jsfiddle net W792X 5 for it 我试图让提交按钮在 div 内浮动 但设置该属性似乎会导致
  • 为什么 TypeScript 混合了模块和原型模式?

    我正在查看此页面上 TypeScript 生成的 JS 代码 http www typescriptlang org Playground http www typescriptlang org Playground 基本上 要创建一个Gr
  • WebpackError:ReferenceError:Gatsby 上未定义窗口

    我已经在互联网上进行了大量搜索 但无法解决这个问题 我正在使用 Gasby 开发静态页面 但遇到此错误 WebpackError ReferenceError window is not defined 我的线索是 这与我正在使用的引导 模
  • jQuery:向左滑动和向右滑动

    我见过slideUp and slideDown在 jQuery 中 左右滑动的功能 方式怎么样 您可以使用 jQuery UI 中的附加效果来做到这一点 详情请参阅此处 http docs jquery com UI Effects Sl
  • 加载 Angular 库时,IE9 和 IE10 中出现 Angular JS“SCRIPT5007:预期对象”错误

    我正在开发一个 AngularJS 应用程序 该应用程序应在 Firefox IE 9 和 IE 10 上运行 我使用最新版本的 angularjs 库 现在是 1 3 15 服务器端是在JavaEE平台上用Java编写的 服务器运行在Gl
  • 如何得知客户端从服务器的下载速度?

    根据客户的下载速度 我想以低质量或高质量显示视频 任何 Javascript 或 C 解决方案都是可以接受的 Thanks 没有任何办法可以确定 您只能测量向客户端发送数据的速度 如果没有来自客户端的任何类型的输入来表明其获取信息的速度 您
  • 有序 JSON 对象

    我有一个 servlet 它与数据库通信 然后返回有序 按时间排序 对象的列表 在servlet部分 我有 access DB returns a list of User objects ordered ArrayList users M
  • 使用严格模式编译指示时如何声明全局变量

    使用自调用函数来包装严格模式兼容代码 通常称为严格模式编译指示 被认为是一种很好的做法 function use strict Strict code here 我的问题是在这种情况下如何声明全局变量 我今天知道的三种替代方案 替代方案 1
  • 如何强制下载图片?

    我的页面上有一个动态生成的图像 如下所示 img src 我不想告诉我的用户右键单击图像并点击保存 而是想公开一个下载链接 单击该链接将提示下载图像 如何实现这一目标 最初我在 js 中尝试这样做 var path my image att
  • 在引导程序中以编程方式更改选项卡窗格选项卡

    我使用的选项卡窗格定义为 ul class nav nav tabs li a href personal Personal Information a li li class active a href contact Contact a

随机推荐

  • DS.FixtureAdapter 丢失带有 hasMany 异步属性的夹具数据

    背景 我已经提交了github问题 https github com emberjs data issues 2136与 Ember Data 团队合作 但我很想了解如何解决这个问题 或者如果我一直都错了 如果出现此错误 您可以看到一个工作
  • 如何在 JavaScript 警报框中打印 Struts2 ActionMessage

    我有一个Action使用发送操作消息的类addActionMessage 我想使用 JavaScript 警报框在 JSP 中显示该消息 我尝试过 alert
  • 全新 MYSQL 安装,用户“root”访问被拒绝

    我有一台旧的 lamp 服务器 我想将其移动到新机器上 所以我做了一个 mysqldump 在新机器上安装了 Ubuntu Server 13 10 在安装过程中安装了 lamp 然后从旧的 lamp 服务器导入了我的旧 mysql 数据库
  • 编译 bevy_dylib v0.5.0 错误:与 `cc` 链接失败:退出状态:1

    在刚刚升级到 Monterey 的 Mac 上 我在尝试执行以下操作时收到以下信息cargo run一个简单的 Bevy 程序 我已经按照推荐重新安装了 XCode CLThere https stackoverflow com quest
  • R.java消失了

    我最近下载了 Android 支持包 并一直在使用它尝试让我的应用程序 在 SDK 10 上运行 使用 GridLayout 不管怎样 我清理了我的项目几次 以解决 XML 文件中的这个错误 然后当我回到 src 中的类时 对 R 的每个引
  • 使用“单一职责原则”强制我的容器拥有公共设置器

    我正在努力遵循 SOLID 原则进行设计 我发现 当您使用 单一职责原则 SOLID 的 S 时 您通常必须在数据容器和数据处理器之间划分类 例如 如果我有一个具有 5 个属性的类 person 它是从数据库读取的 而不是将所有内容都放在一
  • 如何开始使用 svn:externals?

    我正在寻找有关使用 svn externals 的简洁且写得好的教程 我自己已经知道如何以基本方式使用它们 但我想要一篇好文章 在回答最近出现的此类问题时可以链接到 如何处理依赖于同一来源的多个项目 https stackoverflow
  • ORA-12899: 值对于列来说太大

    我以 feed 的形式从 erp 系统获取数据 特别是 feed 中的一列长度仅为 15 在目标表中也对应的列长度也是varchar2 15 但是当我尝试将相同内容加载到数据库中时 它显示错误 例如 ORA 12899 列 emp name
  • 仅当按下特定命令按钮时才根据需要验证输入

    我有 JSF 验证的具体用例 例如我有一个inputText field
  • 选择范围并复制/粘贴到记事本 - 即将完成

    经过大量的工作和测试 确实非常可悲 我终于成功地选择了一个范围工作表 然后将其复制 粘贴到记事本中 此后该文件将由另一个应用程序读取 不幸的是 该应用程序拒绝该文件 我无法调试原因 我收到的唯一消息是发生错误最后一行 令人惊讶的是 当我手动
  • 使用 matplotlib.pcolormesh() 将颜色设置为透明的正确方法?

    我想要低于一定水平的值 在这种情况下0 绘制为透明matplotlib pcolormesh 而且我似乎无法使用我找到的选项进行任何操作 我尝试过设置kwarg vmin 1 我尝试设置限制plt cm cmap set under alp
  • 数据重塑的 R 性能

    我正在尝试在 R 中重塑数据框 但使用推荐的方法似乎有问题 数据帧具有以下结构 ID DATE1 DATE2 VALTYPE VALUE abcd1233 2009 11 12 2009 12 23 TYPE1 123 45 VALTYPE
  • 将 int 60 转换为 60 分钟的时间值

    这看起来应该很简单 但我找不到我需要的时间格式 数据库中的值为 240 这意味着 240 分钟 我如何将其存储在 php 变量中 以便 php 知道这是分钟 这样我就可以在脚本中将其添加到HH MM value 我编辑了下面的代码以反映答案
  • 如何在 nw.js 中开始使用 angular2

    如何在 nw js 下获得 Angular 2 的工作 hello world 我使用本指南成功获得了一个可用的 Angular 2 应用程序 https angular io docs js latest quickstart html
  • 如何强制状态服务器丢弃所有会话?

    我有一个 asp net Web 应用程序 它使用状态服务器来存储其会话 当我们更改存储在会话中的某些内容的类型时 所有具有活动会话的用户都会出错 因为 旧会话 包含 旧类型 的实例 我认为解决这个问题的最简单方法是重新启动状态服务器 从而
  • jQuery .on keyup 和模糊仅触发 onload

    问题 这blur and keyup每个事件在 onload 时触发一次 并且仅在 onload 时触发 我怎样才能让它们正常工作 jQuery function myFunction text alert text input1 on k
  • 根据特定数组的长度对变量进行分组

    我在数据集中有一长串变量 其中包含多个time不同采样率的通道 例如time 1 time 2 TIME Time等等 还有多个其他变量取决于这些时间中的任何一个 我想列出包含 时间 的所有可能通道 工作区中不区分大小写的部分字符串搜索 并
  • 为什么 savefig 和plot 命令必须位于 IPython 笔记本中的同一单元格中?

    我试图从 IPython 笔记本中导出一些图 搜索我发现这个问题 https stackoverflow com questions 13642528 how to export figures to files from ipython
  • 检测用户是否正在滚动

    如何在 javascript 中检测用户是否正在滚动 这有效 window onscroll function e called when the window is scrolled edit 你说这是一个 TimeInterval 中的
  • webpack-dev-server 如何在不刷新页面的情况下重新加载 css

    当我更改 vue 文件和 css 文件中的样式时 我不希望页面刷新 并且希望样式自动更改 但现在当我更改样式时页面总是刷新 我正在使用 vue cli 生成 webpack 配置文件 as below webpack dev conf js