In Oracle JET 2.0.1 it was possible to develop a JET Hybrid application and serve the app via
grunt serve --platform=android --web=true
which would prebuild the sources for android devices but create a local nodeJS server that runs the application. This meant very fast development, especially in trial and error phases of development.
Since Version 2.1.0 Oracle turned grunt tasks towards own oraclejet grunt tasks (coming with the npm package grunt-oraclejet), which seem not to work well with the old parameters. So the given command results in:
Warning: Flag 'web' not supported! Use --force to continue
Aborted due to warnings.
Even forcing does not change anything to this matter. There might be a "parameter passing" option to the oraclejet grunt build file, but I did not find anything like that. So to keep up the style of developing, we just want to create a new grunt task.
First, we need to use some additional npm packages:
grunt-contrib-connect
grunt-open
You may need to install the packages via
npm install grunt-contrib-connect --save-dev
resp.
npm install grunt-open --save-dev
You can then change the Gruntfile.js of your project to be the following:
'use strict';
var path = require('path');
module.exports = function(grunt) {
require("load-grunt-config")(grunt,
{
configPath: path.join(process.cwd(), "scripts/grunt/config")
});
grunt.loadNpmTasks("grunt-oraclejet");
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-open');
grunt.initConfig({
connect: {
dev: {
options: {
port: 8090,
base: 'hybrid/www',
keepalive: true
}
}
},
open : {
dev : {
path: 'http://localhost:8090',
}
}
});
grunt.registerTask("build", (buildType) => {
grunt.task.run([`oraclejet-build:${buildType}`]);
});
grunt.registerTask("serve", (buildType) => {
grunt.task.run([`oraclejet-serve:${buildType}`]);
});
grunt.registerTask("test", (buildType) => {
grunt.task.run(["build","open:dev"]);
})
grunt.registerTask("startServer",(buildType) => {
grunt.task.run(["connect:dev"]);
})
};
With this gruntfile you can start a local nodeJS Server on your "hardcoded-but-default" web-target folder (hybrid/www) via
grunt startServer
The command
grund test
will clean and build your sources in the default platform (android for hybrid apps in OracleJET 2.1.0) and then open your default browser to load the newly build page.
This is by far not as effective as the --web=true serve-parameter, but it is better than nothing ;)
Have fun to try it yourself, just scaffold your hybrid app (eg: yo oraclejet:hybrid app --appName="Sample Oracle JET App" --template=navdrawer --platforms=android) and change the gruntfile.js.
Happy Coding!
Using grunt serve --platform=android --browser
AntwortenLöschenShould do the same thing that the old --web=true command did.
This new options is documented in the Developer Guide:
https://docs.oracle.com/middleware/jet210/jet/developer/GUID-C75CD8DC-5084-4831-BE1A-FFEE4EA8600C.htm#GUID-D2AE8A6D-DC00-48D3-AB2D-FDA51DD7C990
Thanks for your answer, I'll give it a try!
AntwortenLöschen