我使用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"...
...