2017-05-03 104 views
0

我是离子2的新手。我开发了一款应用程序并将其上传到github上。现在我将它克隆到另一台机器上。当我尝试在其他机器上使用ionic serve运行它时,它给了我以下错误Ionic 2 - 管理依赖关系

1)@ionic/app-scripts找不到,然后我安装它并能够摆脱此错误。我再次运行ionic serve它给出

2)typrscript未找到,然后我安装它,错误消失。

3)现在我得到Error: Cannot find module 'reflect-metadata'

我的问题是我认为这不是一个好方法来安装/管理像这样的所有依赖关系。应该有更好的方法,如果是的话,让我知道。

的.gitignore

# Specifies intentionally untracked files to ignore when using Git 
# http://git-scm.com/docs/gitignore 

*~ 
*.sw[mnpcod] 
*.log 
*.tmp 
*.tmp.* 
log.txt 
*.sublime-project 
*.sublime-workspace 
.vscode/ 
npm-debug.log* 

.idea/ 
.sass-cache/ 
.tmp/ 
.versions/ 
coverage/ 
dist/ 
node_modules/ 
tmp/ 
temp/ 
hooks/ 
platforms/ 
plugins/ 
plugins/android.json 
plugins/ios.json 
www/ 
$RECYCLE.BIN/ 

.DS_Store 
Thumbs.db 
UserInterfaceState.xcuserstate 

的package.json

{ 
    "name": "reminder-app", 
    "version": "0.0.0", 
    "author": "Ionic Framework", 
    "homepage": "http://ionicframework.com/", 
    "private": true, 
    "scripts": { 
    "clean": "ionic-app-scripts clean", 
    "build": "ionic-app-scripts build", 
    "ionic:build": "ionic-app-scripts build", 
    "ionic:serve": "ionic-app-scripts serve" 
    }, 
    "dependencies": { 
    "@angular/common": "4.0.2", 
    "@angular/compiler": "4.0.2", 
    "@angular/compiler-cli": "4.0.2", 
    "@angular/core": "4.0.2", 
    "@angular/forms": "4.0.2", 
    "@angular/http": "4.0.2", 
    "@angular/platform-browser": "4.0.2", 
    "@angular/platform-browser-dynamic": "4.0.2", 
    "@ionic-native/background-mode": "^3.6.1", 
    "@ionic-native/core": "3.4.2", 
    "@ionic-native/splash-screen": "3.4.2", 
    "@ionic-native/status-bar": "3.4.2", 
    "@ionic/cloud-angular": "^0.12.0", 
    "@ionic/storage": "^2.0.1", 
    "crypto-js": "^3.1.9-1", 
    "ionic-angular": "3.1.1", 
    "ionicons": "3.0.0", 
    "moment": "^2.18.1", 
    "rxjs": "5.1.1", 
    "sw-toolbox": "3.4.0", 
    "typescript": "^2.2.1", 
    "zone.js": "^0.8.5" 
    }, 
    "devDependencies": { 
    "@ionic/app-scripts": "1.3.6", 
    "typescript": "~2.2.1", 
    "@ionic/cloud-angular": "0.12.0" 
    }, 
    "cordovaPlugins": [ 
    "cordova-plugin-whitelist", 
    "cordova-plugin-splashscreen", 
    "cordova-plugin-device", 
    "cordova-plugin-statusbar", 
    "cordova-plugin-console", 
    "ionic-plugin-keyboard" 
    ], 
    "cordovaPlatforms": [], 
    "description": "simple-login: An Ionic project" 
} 

config.xml中

<?xml version='1.0' encoding='utf-8'?> 
<widget id="com.ionicframework.simplelogin300887" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> 
    <name>simple-login</name> 
    <description>An awesome Ionic/Cordova app.</description> 
    <author email="[email protected]" href="http://ionicframework.com/">Ionic Framework Team</author> 
    <content src="index.html" /> 
    <access origin="*" /> 
    <allow-navigation href="http://ionic.local/*" /> 
    <allow-intent href="http://*/*" /> 
    <allow-intent href="https://*/*" /> 
    <allow-intent href="tel:*" /> 
    <allow-intent href="sms:*" /> 
    <allow-intent href="mailto:*" /> 
    <allow-intent href="geo:*" /> 
    <preference name="webviewbounce" value="false" /> 
    <preference name="UIWebViewBounce" value="false" /> 
    <preference name="DisallowOverscroll" value="true" /> 
    <preference name="android-minSdkVersion" value="16" /> 
    <preference name="BackupWebStorage" value="none" /> 
    <preference name="SplashMaintainAspectRatio" value="true" /> 
    <preference name="FadeSplashScreenDuration" value="300" /> 
    <preference name="SplashShowOnlyFirstTime" value="false" /> 
    <preference name="SplashScreen" value="screen" /> 
    <preference name="SplashScreenDelay" value="3000" /> 
    <platform name="android"> 
     <allow-intent href="market:*" /> 
     <icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" /> 
     <icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" /> 
     <icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" /> 
     <icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" /> 
     <icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" /> 
     <icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" /> 
     <splash density="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" /> 
     <splash density="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" /> 
     <splash density="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" /> 
     <splash density="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" /> 
     <splash density="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" /> 
     <splash density="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png" /> 
     <splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" /> 
     <splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" /> 
     <splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" /> 
     <splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" /> 
     <splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" /> 
     <splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" /> 
    </platform> 
    <platform name="ios"> 
     <allow-intent href="itms:*" /> 
     <allow-intent href="itms-apps:*" /> 
     <icon height="57" src="resources/ios/icon/icon.png" width="57" /> 
     <icon height="114" src="resources/ios/icon/[email protected]" width="114" /> 
     <icon height="40" src="resources/ios/icon/icon-40.png" width="40" /> 
     <icon height="80" src="resources/ios/icon/[email protected]" width="80" /> 
     <icon height="120" src="resources/ios/icon/[email protected]" width="120" /> 
     <icon height="50" src="resources/ios/icon/icon-50.png" width="50" /> 
     <icon height="100" src="resources/ios/icon/[email protected]" width="100" /> 
     <icon height="60" src="resources/ios/icon/icon-60.png" width="60" /> 
     <icon height="120" src="resources/ios/icon/[email protected]" width="120" /> 
     <icon height="180" src="resources/ios/icon/[email protected]" width="180" /> 
     <icon height="72" src="resources/ios/icon/icon-72.png" width="72" /> 
     <icon height="144" src="resources/ios/icon/[email protected]" width="144" /> 
     <icon height="76" src="resources/ios/icon/icon-76.png" width="76" /> 
     <icon height="152" src="resources/ios/icon/[email protected]" width="152" /> 
     <icon height="167" src="resources/ios/icon/[email protected]" width="167" /> 
     <icon height="29" src="resources/ios/icon/icon-small.png" width="29" /> 
     <icon height="58" src="resources/ios/icon/[email protected]" width="58" /> 
     <icon height="87" src="resources/ios/icon/[email protected]" width="87" /> 
     <splash height="1136" src="resources/ios/splash/[email protected]~iphone.png" width="640" /> 
     <splash height="1334" src="resources/ios/splash/Default-667h.png" width="750" /> 
     <splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242" /> 
     <splash height="1242" src="resources/ios/splash/Default-Landscape-736h.png" width="2208" /> 
     <splash height="1536" src="resources/ios/splash/[email protected]~ipad.png" width="2048" /> 
     <splash height="2048" src="resources/ios/splash/[email protected]~ipadpro.png" width="2732" /> 
     <splash height="768" src="resources/ios/splash/Default-Landscape~ipad.png" width="1024" /> 
     <splash height="2048" src="resources/ios/splash/[email protected]~ipad.png" width="1536" /> 
     <splash height="2732" src="resources/ios/splash/[email protected]~ipadpro.png" width="2048" /> 
     <splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768" /> 
     <splash height="960" src="resources/ios/splash/[email protected]~iphone.png" width="640" /> 
     <splash height="480" src="resources/ios/splash/Default~iphone.png" width="320" /> 
    </platform> 
    <plugin name="ionic-plugin-keyboard" spec="~2.2.1" /> 
    <plugin name="cordova-plugin-whitelist" spec="1.3.1" /> 
    <plugin name="cordova-plugin-console" spec="1.0.5" /> 
    <plugin name="cordova-plugin-statusbar" spec="2.2.1" /> 
    <plugin name="cordova-plugin-device" spec="1.1.4" /> 
    <plugin name="cordova-plugin-splashscreen" spec="~4.0.1" /> 
    <plugin name="cordova-sqlite-storage" spec="~2.0.3" /> 
    <plugin name="cordova-plugin-background-mode" spec="~0.7.2" /> 
</widget> 

回答

0

你有没有尝试るnning npm install使用--save标志?这样你的增加反映在你的package.json。同样的事情也适用于科尔多瓦插件。只需使用save标志将其添加到您的​​3210即可。

这里的一些帖子有更多的信息:

What is the --save option for npm install?

Save already installed Cordova plugins to config.xml

+0

是的,我用'--save'标志,而安装的依赖关系。 – Junaid

+0

如果使用--save来安装软件包并复制项目,那么运行'npm install'应该安装'package.json'中列出的所有已保存软件包 – Stigasaur

0

克隆回购后,你必须首先运行

npm install 

这将下载所有的依赖一次和将它们放入node_modules。然后,您可以执行

ionic serve