TLDR;
你必须连锁拉拉维尔混合方法来维持执行顺序吗?是否有任何方法异步阻止使用下列非链接模式( mix.scripts(); mix.js(); mix.sass(); )?
我运行过的几个测试表明,我不需要连锁。
一个例子
由于我们的Laravel应用程序是如何设置,我们需要更多的拉里混合设置。我们不是复制n粘贴webpack.mix.js文件,而是在每个文件中到处修改几行代码,而是创建一个传递给单个webpack.mix.js文件的配置对象。在这个文件中,我们将检查是否已经配置了各种东西,如果是的话,运行适当的Mix方法。下面是一个伪代码示例.
if ( config.js ) {
mix.js( config.js.src, config.js.dist );
}
if ( config.sass ) {
mix.sass( config.sass.src, config.sass.dist );
}
if ( config.concat ) {
if ( config.concat.styles ) {
// Could be more than one set of files that need to be combined, so array.
config.concat.styles.map( ( files ) => {
mix.styles( files.src, files.dist );
}
}
if ( config.concat.scripts ) {
// Could be more than one set of files that need to be combined, so array.
config.concat.scripts.map( ( files ) => {
mix.scripts( files.src, files.dist );
}
}
}目前,我们的代码更像是你在网上看到的大多数例子。
mix
.options()
.webpackConfig()
.styles()
.styles()
.scripts()
.js()
.sass();发布于 2020-04-15 09:43:59
laravel-mix抽象webpack的配置,动态生成webpack配置。
其API实现的组织使用带fluent或链式接口的生成器模式完成。因此,要生成特定的配置,只需调用需要执行的步骤。
您需要确保webpack.mix.js模块可适当进口中的代码。
您需要小心自定义任务(如copyDirectory、combine、version )的排序。在v5.0.0中,运行自定义任务。对它们的异步特性没有任何影响。然而,即将到来的变化是为了确保它们是按顺序运行的。。
其他API方法可以按任何顺序调用。
发布于 2020-04-15 02:44:20
我运行过的几个测试表明,我不需要连锁。
你绝对是对的!
拉力维尔混合是用JavaScript编写的,并利用了方法链。
您可以使用OnlinePythonTutor可视化代码执行。
如果您查看下面的代码,您将发现您不一定需要链接方法来维护执行顺序。
class Person {
setName(name) {
this.name = name
return this
}
setAge(age) {
this.age = age
return this
}
}
var p = new Person()
p.setName("Alice").setAge(42) // Set name before age
p.setName("Bob") // Set name
p.setAge(42) // Set age您可以可视化此代码这里。
https://stackoverflow.com/questions/60974257
复制相似问题