我使用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/