Reputation: 4908
I have an angular project and I want to use ionic for mobile. I did ionic init
.
When I run the command ionic serve
, I get this error:
> ng.cmd run app:serve --host=localhost --port=8100
[ng] Error: Unknown arguments: host, port
[ERROR] ng has unexpectedly closed (exit code 1).
The Ionic CLI will exit. Please check any output above for error details.
Here is my package.json
:
{
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"build:prod": "ng build --configuration production",
"watch": "ng build --watch --configuration development",
"test": "ng test"
},
"private": true,
"dependencies": {
"@angular/animations": "^14.2.4",
"@angular/cdk": "^14.2.3",
"@angular/common": "^14.2.4",
"@angular/compiler": "^14.2.4",
"@angular/core": "^14.2.4",
"@angular/forms": "^14.2.4",
"@angular/material": "^14.2.3",
"@angular/platform-browser": "^14.2.4",
"@angular/platform-browser-dynamic": "^14.2.4",
"@angular/router": "^14.2.4",
"angular-material-dynamic-themes-eli": "^1.0.4",
"bootstrap": "^5.1.3",
"flag-icons": "^6.4.4",
"material-design-icons": "^3.0.1",
"ngx-editor": "^15.0.0",
"rxjs": "^7.4.0",
"zone.js": "~0.11.4"
},
"devDependencies": {
"@angular-devkit/build-angular": "^14.2.4",
"@angular/cli": "^14.2.4",
"@angular/compiler-cli": "^14.2.4",
"@types/jasmine": "^4.3.0",
"@types/node": "^18.7.23",
"jasmine-core": "^4.4.0",
"karma": "^6.4.1",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage": "~2.0.3",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "~1.7.0",
"tslib": "^2.3.1",
"typescript": "~4.8.4"
}
}
How can I fix the host/port missing arguments ?
After a comment of SimpleDev, I tried all answer here :
npm install @ionic/app-scripts@latest --save-dev
: The @ionic/app-scripts
package is deprecated and not updated to angular 14 or 15. When running it, I get Undefined variable standalone_static_library in binding.gyp while trying to load binding.gyp
.node_modules
and npm install
: Doesn't change anythingUpvotes: 10
Views: 3288
Reputation: 1
The solution that worked for me was to modify the angular.json by changing the name of the app, setting it as 'app' in the following way:
{
"projects": {
"app": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"style": "scss"
}
}
}
}
}
Upvotes: 0
Reputation: 21
In my case, I had to do ionic init
as it was a existing project and it worked
Upvotes: 0
Reputation: 456
What worked for me was specifying the project name as you would in the angular cli with
ionic serve --project {{project}}
Upvotes: 4
Reputation: 9808
Instead of renaming the app or changing the script (which didn't work for me) I updated the ionic.config.json
:
the <app-name>
value was incorrect for me, it was app
. So I changed it to the correct name app-name
.
{
"defaultProject": "app-name",
"projects": {
"app-name": {
"name": "app-name",
"type": "angular"
}
}
}
Now ionic capacitor run android -l
runs as expected.
Upvotes: 2
Reputation: 83
Building on Leon Boot's answer I added a script to my package.json to run it my application. I didn't want to rename my application.
The ionic serve command is itself just a script that outputs as:
ng.cmd run app:serve --host=localhost --port=8100
The app part is just the name of the application that it's going to serve. I tried finding some config file setting for ionic that controls this value, but I didn't find anything in the documentation for ionic serve, or the configuration file.
I worked around this limitation by making my own script. I copied the output from the ionic serve command, to a script and changed app to the name of my application. Now my packages.json file has this "ionic:serve" script:
{
"name": "my-application-name",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"watch": "ng build --watch --configuration development",
"test": "ng test",
"ionic:serve": "ng.cmd run my-application-name:serve --host=localhost --port=8100"
},...
For your application replace my-application-name with the name of your application.
Now run this script instead using ionic serve:
npm run ionic:serve
Upvotes: 1
Reputation: 57
It's a simple and easy way i do every project of angular for ionic.
ionic start projectName
If you want run ionic project on angular project it has a lot of error
Upvotes: 0
Reputation: 136
I have been able to fix this issue for a project I'm working on, after experiencing just this issue. It seems that the app part in app:serve
is dynamic and relates to the name of your angular project as defined in angular.json. The ionic
CLI tool seems to assume this is always app, even though the installer has added quite a few ng
commands to angular.json using the project name it found in this same angular.json file. What fixed the issue for me is renaming the project to app
by editing the angular.json config:
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"myapp": {
"projectType": "application",
In the above example,myapp
should be changed to app
. Search for other occurrances of myapp
as well, you'll find a few myapp:build,
myapp:serve`, etc. commands as well. Those should be renamed as well.
Now, when I run ionic serve
I get no errors and the Angular server actually starts.
Upvotes: 5
Reputation: 122
I hope this solution can help you:
npm cache clean --force
npm uninstall -g @angular/cli
npm uninstall -g @ionic/cli
npm install -g @angular/cli
npm install -g @ionic/cli
Upvotes: 0