gpt4 book ai didi

javascript - Grunt 如何设置任务以多次调用插件

转载 作者:行者123 更新时间:2023-11-30 17:20:54 25 4
gpt4 key购买 nike

我使用 requirejs 将代码分发到单个文件中。

在 grunt.initConfig 中,我有:

grunt.initConfig({

requirejs: {
compile: {
options: {
paths: requirejs_path,
shim:require_shim,

baseUrl : "./mobile",
name: "mobilemain",
out: "./mobile/dist/main.js",
removeCombined: true,
findNestedDependencies: true,
optimize: "uglify2",
wrap: true,
uglify2: requirejs_uglify2
}
}
}
}

这部分代码用于设置 requirejs。我用

grunt.registerTask("distribute", ["typescript", "requirejs"]);

将其注册到任务distribute,一切正常。

现在我想在 distribute 任务中调用 requirejs 两次,一次用于移动设备,一次用于桌面设备。基本上我需要更改上面代码中的 baseUrlnameout 配置。

我该怎么做?

最佳答案

grunt-contrib-requirejs 是一个多任务,您可以在其中简单地配置任意数量的子任务(使用选项属性)

grunt.initConfig({

requirejs: {

// define your base options which are the same for both tasks
options: {
paths: requirejs_path,
shim:require_shim,
removeCombined: true,
findNestedDependencies: true,
optimize: "uglify2",
wrap: true,
uglify2: requirejs_uglify2
},

// your first task which contains the 3 options which should be used
compile: {
options: {
baseUrl : "./mobile",
name: "mobilemain",
out: "./mobile/dist/main.js"
}
},

// your second task which contains the 3 options which should be used
compile2: {
options: {
baseUrl : "...",
name: "...",
out: "..."
}
}
}
}

然后你可以保留你的别名任务distribute,因为如果没有指定,grunt 将运行所有子任务

grunt.registerTask("distribute", ["typescript", "requirejs"]);

或者您可以使用冒号符号简单地运行一个子任务:

grunt.registerTask("distribute", ["typescript", "requirejs:compile", "requirejs:compile2"]);

如果您绝对必须保证 compile 需要在 compile2 之前运行,则第二个将很有用(记住:javascript does not guarantee property order in objects)

关于javascript - Grunt 如何设置任务以多次调用插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25159822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com