我使用Oracle JET v2.0创建了一个JavaScript应用程序。运行OracleJET:如何更改grunt发布目录
grunt build:release
创建发布在项目的根文件夹文件夹。如何改变这个指向另一个路径,例如项目根之外?
我使用Oracle JET v2.0创建了一个JavaScript应用程序。运行OracleJET:如何更改grunt发布目录
grunt build:release
创建发布在项目的根文件夹文件夹。如何改变这个指向另一个路径,例如项目根之外?
如果您使用Yeoman发电机,您可以按照scripts/grunt/tasks/build.js
中的Grunt流程进行操作。您会在之下看到它按顺序运行了许多任务。
不幸的是,版本文件夹名称在许多这些任务的配置文件中被硬编码。因此,在构建版本任务结束时添加一个任务可能会更有意义:将内置版本复制到新目录中。你可以一个目标添加到命名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"
]);
}
...
为了使这更强大的,如果你正在做大量的build:释放,你应该做一些额外的清理任务,因为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"...
...