Начните новый проект Ionic 3 с Angular версии 4
Я установил Ionic 3.6, который поддерживает Angular 4.0.1, так как я хочу повторно использовать некоторый код, который я уже разработал для настольного приложения. Проблема, с которой я сталкиваюсь, заключается в том, что когда я создаю новый проект с
ionic start newProject
он использует Angular 5, как вы можете видеть из package.json здесь ниже, где вы можете видеть, что angular-ionic 3.9.2 является зависимостью.
Как я могу создать новый проект с Angular 4.0.1? Это важно еще и потому, что когда я тестирую проект с помощью ionic cordova, запускаю android и затем редактирую файл, соединение разрывается с ошибкой.
Спасибо.
{
"name": "my5thproject",
"version": "0.0.1",
"author": "Ionic Framework",
"homepage": "http://ionicframework.com/",
"private": true,
"scripts": {
"clean": "ionic-app-scripts clean",
"build": "ionic-app-scripts build",
"lint": "ionic-app-scripts lint",
"ionic:build": "ionic-app-scripts build",
"ionic:serve": "ionic-app-scripts serve"
},
"dependencies": {
"@angular/common": "5.0.0",
"@angular/compiler": "5.0.0",
"@angular/compiler-cli": "5.0.0",
"@angular/core": "5.0.0",
"@angular/forms": "5.0.0",
"@angular/http": "5.0.0",
"@angular/platform-browser": "5.0.0",
"@angular/platform-browser-dynamic": "5.0.0",
"@ionic-native/core": "4.3.2",
"@ionic-native/splash-screen": "4.3.2",
"@ionic-native/status-bar": "4.3.2",
"@ionic/storage": "2.1.3",
"ionic-angular": "3.9.2",
"ionicons": "3.0.0",
"rxjs": "5.5.2",
"sw-toolbox": "3.6.0",
"zone.js": "0.8.18"
},
"devDependencies": {
"@ionic/app-scripts": "3.1.0",
"@ionic/cli-plugin-ionic-angular": "1.4.1",
"ionic": "3.6.0",
"typescript": "2.4.2"
},
"description": "An Ionic project"
}
2 ответа
Вдохновленный ответом Суреша, окончательное решение включает в себя различные этапы:
- изменил package.json (прикрепляю в конце ответа)
- использовал Angular 4.1.3, который подходит для ionic 3.6.0 и подходит для моего проекта
- изменил также rxjs на 5.4.0
- изменил также zone.js до 0.8.12
- изменил также машинопись на 2.3.4
- удаленная папка node_modules
- запущенный
npm install
внутри проекта - установлены rxjs и zone.js
npm install rxjs@5.4.0
npm install zone.js@0.8.12
- установил правильную версию Cordova, чтобы предотвратить ошибку
npm install --save-dev @ionic/cli-plugin-cordova@1.4.1
- изменил minSdkVersion на 19 в config.xml в следующей строке, чтобы предотвратить другую ошибку
<preference name="android-minSdkVersion" value="19" />
- Тогда я получил это
throw er; // Unhandled 'error' event
"который я решил с помощью командыnpm i -D -E ws@3.3.2
Это было настоящее путешествие, но я, наконец, сделал это. Спасибо также за многие другие ответы на SO. Было бы интересно узнать, есть ли более простое решение.
package.json
{
"name": "my5thproject",
"version": "0.0.1",
"author": "Ionic Framework",
"homepage": "http://ionicframework.com/",
"private": true,
"scripts": {
"clean": "ionic-app-scripts clean",
"build": "ionic-app-scripts build",
"lint": "ionic-app-scripts lint",
"ionic:build": "ionic-app-scripts build",
"ionic:serve": "ionic-app-scripts serve"
},
"dependencies": {
"@angular/common": "4.1.3",
"@angular/compiler": "4.1.3",
"@angular/compiler-cli": "4.1.3",
"@angular/core": "4.1.3",
"@angular/forms": "4.1.3",
"@angular/http": "4.1.3",
"@angular/platform-browser": "4.1.3",
"@angular/platform-browser-dynamic": "4.1.3",
"@ionic-native/core": "4.3.2",
"@ionic-native/splash-screen": "4.3.2",
"@ionic-native/status-bar": "4.3.2",
"@ionic/storage": "2.1.3",
"ajv": "^6.5.5",
"cordova-android": "7.1.1",
"cordova-plugin-device": "^1.1.4",
"cordova-plugin-ionic-webview": "^1.2.1",
"cordova-plugin-splashscreen": "^4.0.3",
"cordova-plugin-whitelist": "^1.3.1",
"ionic-angular": "3.6.0",
"ionic-plugin-keyboard": "^2.2.1",
"ionicons": "3.0.0",
"rxjs": "^5.4.0",
"sw-toolbox": "3.6.0",
"zone.js": "^0.8.12"
},
"devDependencies": {
"@ionic/app-scripts": "3.1.0",
"@ionic/cli-plugin-cordova": "^1.4.1",
"@ionic/cli-plugin-ionic-angular": "1.4.1",
"ionic": "3.6.0",
"typescript": "2.3.4",
"ws": "3.3.2"
},
"description": "An Ionic project",
"cordova": {
"plugins": {
"ionic-plugin-keyboard": {},
"cordova-plugin-whitelist": {},
"cordova-plugin-device": {},
"cordova-plugin-splashscreen": {},
"cordova-plugin-ionic-webview": {}
},
"platforms": [
"android"
]
}
}
Вам необходимо использовать последнюю версию 3, то есть 3.9.2, которая будет иметь исправления производительности и ошибок. Ваш код, написанный для 3.6, должен работать для 3.9.1. Пожалуйста, попробуйте интегрировать его. Если вы все еще хотите использовать конкретные версии. Вы можете вручную обновить файл package.json.
{
"name": "my5thproject",
"version": "0.0.1",
"author": "Ionic Framework",
"homepage": "http://ionicframework.com/",
"private": true,
"scripts": {
"clean": "ionic-app-scripts clean",
"build": "ionic-app-scripts build",
"lint": "ionic-app-scripts lint",
"ionic:build": "ionic-app-scripts build",
"ionic:serve": "ionic-app-scripts serve"
},
"dependencies": {
"@angular/common": "4.0.1",
"@angular/compiler": "4.0.1",
"@angular/compiler-cli": "4.0.1",
"@angular/core": "4.0.1",
"@angular/forms": "4.0.1",
"@angular/http": "4.0.1",
"@angular/platform-browser": "4.0.1",
"@angular/platform-browser-dynamic": "4.0.1",
"@ionic-native/core": "4.3.2",
"@ionic-native/splash-screen": "4.3.2",
"@ionic-native/status-bar": "4.3.2",
"@ionic/storage": "2.1.3",
"ionic-angular": "3.6.0",
"ionicons": "3.0.0",
"rxjs": "5.5.2",
"sw-toolbox": "3.6.0",
"zone.js": "0.8.18"
},
"devDependencies": {
"@ionic/app-scripts": "3.1.0",
"@ionic/cli-plugin-ionic-angular": "1.4.1",
"ionic": "3.6.0",
"typescript": "2.4.2"
},
"description": "An Ionic project"
}
После обновления package.json. Попробуйте удалить папку node_modules и запустить 'npm install'.