webpack - 我可以从 Laravel Mix 链式调用 shell 命令吗?

标签 webpack laravel-mix laravel-mix-vue3

我使用Laravel Mix - 这是一种轻松使用 webpack 的灵活方式。

运行watch时,只要文件发生更改,它就会重新编译开发模式版本。然而,为了使用这些,需要一个外部构建步骤 - 例如一个项目需要调用 drush cc css-js

有没有办法从 webpack.mix.js 文件或其他文件中执行此操作?

有点像:

mix()
 .js('src/app.js', 'dist/')
 .vue()
 .shell('drush cc css-js') // ««« something like this?
;

或者也许它必须放在 package.json.scripts 位中?

最佳答案

您可能需要使用事件 Hook 来达到此目的。

Laravel Mix v6 中,您可以使用 Event Hooks (v6)像这样:

const { exec } = require('child_process');

mix.js('src/app.js', 'dist/')
   .vue()
   .after(() => {
        exec('drush cc css-js');
    });

如果您想在编译资源之前执行某些操作,请使用 mix.before() 而不是 mix.after()

编辑:正如OP在下面指出的,在Laravel Mix v5中,你必须使用Event Hook (v5) mix.then() 在执行 mix 后运行任意代码。在执行混合之前没有事件 Hook 来运行代码。

关于webpack - 我可以从 Laravel Mix 链式调用 shell 命令吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64833338/

相关文章:

laravel - 在 Laravel 中安装 vue 3.0

node.js - Webpack - 如何在 bundle 中需要可选依赖项(saslprep)

angular - Ionic 2 - 运行时错误找不到模块 "."

javascript - 如何使用 laravel mix 定义全局 javascript 函数

vue.js - 您正在运行Vue的esm-bundler构建。建议配置您的 bundler

jestjs - 与 Vue3 开 Jest 错误 : Cannot destructure property 'config' of 'undefined' as it is undefined

gulp-webpack 错误 : Entry module not found: Error: cannot resolve module 'babel'

javascript - Webpack 构建语法错误 : Unexpected token )

webpack - [Vue 警告] : Failed to mount component: template or render function not defined. 错误

laravel - vuetify-loader 1.6 与 laravel mix 不兼容,vue-loader 15 目前不支持带 oneOf 的 vue 规则