使用 Laravel Mix 时如何包含 webpack 插件?

2024-01-12

如果我使用 WebPack 和 Laravel Mix,我应该如何包含 webpack 插件?我很困惑将插件代码添加到哪个文件中。

我的以下尝试似乎没有运行我的插件。该插件应该压缩 js、css 文件,但事实并非如此。

webpack.config.js:

  require('./node_modules/laravel-mix/src/index');
  require(Mix.paths.mix());

  // My plugin is here
  const CompressionPlugin = require('compression-webpack-plugin');

  Mix.dispatch('init', Mix);

  let WebpackConfig = require('./node_modules/laravel-mix/src/builder/WebpackConfig');

  module.exports = new WebpackConfig({
     plugins: [
      new CompressionPlugin({
        asset: "[path].gz[query]",
        algorithm: "gzip",
        test: /\.js$|\.css$|\.html$|\.svg$/,
        threshold: 10240,
        minRatio: 0.8
      })
    ],
  }).build();

webpack.mix.js:

  let mix = require('laravel-mix');

  mix.setPublicPath('dist')
     .js('src/app.js', 'scripts/')
     .extract([
        'jquery',
        'axios',
        'babel-polyfill',
        'lodash',
        'tether',
        'vue',
        'bootstrap-vue',
        'vuex',
        'vuex-localstorage',
     ])
     .sass('src/styles/app.scss', 'styles/')
     .copyDirectory('src/assets', 'dist/assets')
     .options({
        processCssUrls: false,
        uglify: true
      })
  .version();

我的 NPM 命令是:

节点node_modules / cross-env / dist / bin / cross-env.js NODE_ENV =开发node_modules / webpack / bin / webpack.js --watch --progress --hide-modules --config = webpack.config.js


Mix 的 API 提供了一个有用的webpackConfig调整 webpack 配置的方法。

https://laravel.com/docs/5.6/mix#custom-webpack-configuration https://laravel.com/docs/5.6/mix#custom-webpack-configuration

The webpackConfig方法接受一个对象,该对象应包含您希望应用的任何特定于 Webpack 的配置。

我相信下面的代码应该可以工作。

webpack.mix.js:

const mix = require('laravel-mix');
const CompressionPlugin = require('compression-webpack-plugin');

mix.setPublicPath('dist')
  .js('src/app.js', 'scripts/')
  .extract([
    'jquery',
    'axios',
    'babel-polyfill',
    'lodash',
    'tether',
    'vue',
    'bootstrap-vue',
    'vuex',
    'vuex-localstorage',
  ])
  .sass('src/styles/app.scss', 'styles/')
  .copyDirectory('src/assets', 'dist/assets')
  .options({
    processCssUrls: false,
    uglify: true,
  })
  .webpackConfig({
    plugins: [
      new CompressionPlugin({
        asset: '[path].gz[query]',
        algorithm: 'gzip',
        test: /\.js$|\.css$|\.html$|\.svg$/,
        threshold: 10240,
        minRatio: 0.8,
      }),
    ],
  })
  .version();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Laravel Mix 时如何包含 webpack 插件? 的相关文章

随机推荐

  • 错误:未找到默认活动,但已声明它

    我遇到过两次奇怪的情况 我的主模块中有清单 igs main
  • Scala 特性 mixin order 和 super call

    我有这个代码 trait base def msg Unit println base trait foo extends base abstract override def msg Unit super msg println foo
  • 将数据帧拆分为分组块

    我想将数据帧分割成块 我创建了一个函数 它能够将数据帧分割成相同大小的块 但是我无法弄清楚如何按组分割 数据帧的每个分割必须包含分组变量的所有实例 我希望能够灵活地确定可以包含多少个组 因为它们相对较小 示例数据框 A 1 A 2 B 3
  • 软键盘添加*和#键

    1 问题 我有一个EditText用户必须在其中输入USSD code Problem是 用于输入USSD用户必须切换到的代码符号键盘 两到三次 这会造成非常糟糕的用户体验 USSD 代码示例 345 77 333 25 123 678 等
  • 有没有办法在(GitHub 风格的)Markdown 中为文本添加上划线?

    我想在 Markdown 文件中为某些文本添加上划线 这可能吗 它可以使用波形符 就像粗体 斜体等一样 下面是来自亚搏体育appGitLab文档 https guides github com features mastering mark
  • Android - 使用 openGL ES 绘制 3D 然后 2D

    在 openGL ES 中绘制一些 3D 内容后 如何绘制 HUD 文本或位图 我试过这个 private void switchTo2D GL10 gl gl glDisable GL10 GL DEPTH TEST gl glMatri
  • Chrome 项目 - Blink 引擎源代码在哪里? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Chrome 的 Blink 引擎的源代码位于哪里 Update 积极的发展似乎正在发生third pa
  • 创建后如何在 Azure 数据工厂中启用诊断

    我正在尝试在通过 c 自动化应用程序创建 azure 数据工厂后使用 ARM 模板启用诊断 我尝试对非计算资源模板使用此处的步骤 https learn microsoft com en us azure monitoring and di
  • 类似于 CloudKit 的多平台 MBaas?

    我也需要在 Android 中实现基于 CloudKit 的应用程序 哪个 MBaas 的架构与 CloudKit 最相似 我需要这些功能 级联删除 能够跟踪从令牌表示的日期开始表中的插入 更新 删除更改 资产管理 基于游标的记录获取 分页
  • 如何向我的网站添加 snapchat 共享按钮。是否可以为 Snapchat 添加共享按钮?

    我正在开发一个网站 我在基于 php html 的网站上添加了许多社交登录或共享按钮 facebook tweeter gplus pintrest 等链接 现在我必须为 snapchat 添加社交共享按钮 是否可以在我的网站上提供链接或按
  • Facebook:有没有办法获取不是我朋友的用户的 current_location?图形 API 或 FQL

    假设我有一个用户 ID 和用户名 我手动打开她的 Facebook 页面 即http www facebook com 用户名 http www facebook com username 就是这样 住在 字段显示她住在任何地方 尽管如此
  • 获取 iPhone 麦克风数据以通过 Socket 进行流式传输

    我想从 iPhone 麦克风获取原始音频数据 NSData 格式 以通过套接字进行流式传输 这不是我可以使用 twilio etc 的情况 因为它是一个研究项目 套接字实现已完成 我可以发送音频文件 但我在获取流式麦克风数据时遇到问题 这是
  • 使用数字索引重新采样 pandas 系列

    假设我有一个 pandas Series 其索引具有数值类型 例如 pd Series 10 20 1 1 2 3 我们如何以 0 1 间隔对上述序列进行重新采样 看起来 resample 函数只适用于日期时间间隔 这就是插值的名称 您可以
  • 带有 Docker 执行器 /usr/bin/bash 的 Gitlab-CI:第 90 行:git:找不到命令

    我有一个本地 GitLab 服务器和带有 Docker 执行器的 gitlab ci 运行程序 我想使用 gitlab ci 构建 第一阶段 我的 Maven 项目 由于我使用 buildnumber maven plugin 我向 git
  • 为什么看似空的文件和字符串会产生 md5sum?

    考虑以下 md5sum dev null d41d8cd98f00b204e9800998ecf8427e dev null touch empty md5sum empty d41d8cd98f00b204e9800998ecf8427e
  • 为什么在新的 virtualenv 中导入 numpy 需要 5 秒?

    背景 你好 我们编写的 Python 代码在我们无法控制的服务器上运行 我们不太了解代码运行的环境 如果我们的代码运行时间超过 3 秒 就会被拒绝 因此 我决定开始使用虚拟环境对我们的代码进行计时 以给出最坏情况下的运行时间估计 Quest
  • Java swing:选择/取消选择 JButton 以模仿脉冲

    FE我有一个电子邮件客户端 它接收新消息 带有传入消息的按钮开始执行某些操作 直到用户单击它以查看发生了什么 我试图通过选择 等待然后取消选择按钮来吸引注意力 但这没有任何作用 do button setSelected true Thre
  • 乳胶输出

    当我编译乳胶文件时 它还会生成 txt bbl aux 文件 它们没有用 因为我可以删除它们而不会造成任何损害 我的问题是这些文件的用途是什么以及如何在编译 tex 文件时选择不生成它们 这些文件很有用 代表多遍排版过程的输出 如果删除它们
  • Python numpy 数组元素不改变值

    所以我的 python 代码中遇到了一个问题 我将其归结为 假设我们有一个函数u def u y t h float 10 U0 float 1 return U0 h y 和一个数组 a np array 0 2 2 然后执行以下操作 a
  • 使用 Laravel Mix 时如何包含 webpack 插件?

    如果我使用 WebPack 和 Laravel Mix 我应该如何包含 webpack 插件 我很困惑将插件代码添加到哪个文件中 我的以下尝试似乎没有运行我的插件 该插件应该压缩 js css 文件 但事实并非如此 webpack conf