我使用Oracle JET v2.0创建了一个javascript应用程序。正在运行
grunt build:release
在项目根文件夹中创建发布文件夹。如何将其更改为指向另一个路径,例如项目根外部?
答案 0 :(得分:0)
如果您正在使用Yeoman生成器,则可以按照scripts/grunt/tasks/build.js
中的Grunt流程进行操作。您将在if (target === "release")
下看到它按顺序运行了许多任务。
不幸的是,发布文件夹名称在许多任务中都是硬编码的。配置文件。因此,在构建结束时添加任务可能更有意义:发布任务将构建的版本复制到新目录中。您可以将目标添加到名为myFinalRelease的scripts/grunt/config/copy.js
文件中:
module.exports = {
release:
{
src: [
"**",
"!bower_components/**",
"!grunt/**",
"!scripts/**",
"!js/**/*.js",
"js/libs/**",
"!js/libs/**/*debug*",
"!js/libs/**/*debug*/**",
"!node_modules/**",
"!release/**",
"!test/**",
"!.gitignore",
"!bower.json",
"!Gruntfile.js",
"!npm-shrinkwrap.json",
"!oraclejetconfig.json",
"!package.json"
],
dest: "release/",
expand: true
},
myFinalRelease:
{
cwd: 'release/',
src: ['**'],
dest: "myRelease",
expand: true
}
};
然后添加该任务:将目标作为scripts/grunt/tasks/build.js
发布部分最后一行的复制步骤:
...
if (target === "release")
{
grunt.task.run(
[
"clean:release",
"injector:mainReleasePaths",
"uglify:release",
"copy:release",
"requirejs",
"clean:mainTemp",
"copy:myFinalRelease"
]);
}
...
为了使其更加强大,如果您正在进行大量构建,则应该执行一些额外的清理任务:发布,因为除非您创建任务,否则myRelease文件夹不会被清除去做吧。或者您可以查看其他Grunt插件,例如grunt-contrib-rename。
如果复制太多而且太麻烦,您可以编辑所有硬编码的任务配置来更改发布目录的名称。您将在以下四个文件中找到目录名称:
<强> scripts/grunt/config/clean.js
强>
...
release: ["release/*"],
...
<强> scripts/grunt/config/uglify.js
强>
...
dest:"release/js"
...
<强> scripts/grunt/config/copy.js
强>
...
dest: "release/",
...
<强> scripts/grunt/config/require.js
强>
...
baseUrl: "./release/js",
name: "main-temp",
mainConfigFile: "release/js/main-temp.js",
optimize: "none",
out: "release/js/main.js"...
...