angular2+ionic2安裝中遇到的問(wèn)題及解決

最近接到任務(wù)是需要用angular2+ionic2開(kāi)發(fā)的項(xiàng)目债朵,粗粗的看了一下教程,發(fā)現(xiàn)和之前用的angular cli的用法相似瀑凝,想來(lái)也是簡(jiǎn)單序芦。待到實(shí)際在自己動(dòng)手開(kāi)始配置,才發(fā)現(xiàn)自己的前端開(kāi)發(fā)的基礎(chǔ)是在是有些淺粤咪,短短一個(gè)安裝的過(guò)程就讓我四處碰壁谚中。安裝過(guò)程所使用的命令:
出于穩(wěn)定,先安裝cnpm(有npm的國(guó)內(nèi)鏡像包寥枝,不會(huì)出現(xiàn)被墻而報(bào)錯(cuò)的問(wèn)題)藏杖;

npm install -g cnpm

使用cnpm代替npm,再安裝cordova和ionic

cnpm install -g ionic@2.* cordova@4.2.0

  1. 先談第一個(gè)問(wèn)題脉顿,對(duì)npm的理解太淺蝌麸,使用npm安裝ionic鏈接下載時(shí)間過(guò)程而導(dǎo)致無(wú)法成功下載,使用cnpm下載則會(huì)十分的流暢艾疟,因?yàn)椴磺宄npm和npm的區(qū)別来吩,這導(dǎo)致在之后查找問(wèn)題的過(guò)程中給自己多加了不少疑問(wèn)難題。npm與cnpm的區(qū)別只在于安裝包的來(lái)源不同蔽莱,而最后安裝的路徑其實(shí)是一樣的弟疆,cnpm實(shí)際上也算是npm。
  2. 在我沒(méi)縷清第一個(gè)問(wèn)題我就繼續(xù)往后走了盗冷,于是很快就遇到了第二個(gè)問(wèn)題怠苔,使用ionic serve這條命令導(dǎo)致運(yùn)行報(bào)錯(cuò),錯(cuò)誤信息部分為:

'ionic-app-scripts' ????????????????????????е????
?????????????
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! ionic-jetsen@ ionic:serve: ionic-app-scripts serve "--v2" "--address" "0.0.0.0" "--port" "8100" "--livereload-port" "35729"
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the ionic-jetsen@ ionic:serve script 'ionic-app-scripts serve "--v2" "--address" "0.0.0.0" "--port" "8100" "--livereload-port" "35729"'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the ionic-jetsen package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! ionic-app-scripts serve "--v2" "--address" "0.0.0.0" "--port" "8100" "--livereload-port" "35729"
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs ionic-jetsen
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls ionic-jetsen
npm ERR! There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Administrator\AppData\Roaming\npm-cache_logs\2017-04-08T07_03_47_978Z-debug.log
There was an error serving your Ionic application: There was an error with the spawned command: serve

這下就然我很摸不清問(wèn)題所在了仪糖,看網(wǎng)上的教程都沒(méi)見(jiàn)遇到這樣的問(wèn)題的柑司。于是我就開(kāi)始找原因迫肖,開(kāi)始因?yàn)榈谝粋€(gè)問(wèn)題沒(méi)弄清楚,感覺(jué)是因?yàn)槲矣胏npm的命令而沒(méi)有用npm的原因攒驰,想著正本清源蟆湖,等一番補(bǔ)闕掛漏后發(fā)現(xiàn)對(duì)結(jié)果并沒(méi)有影響,讓我更加罔知所措了玻粪。但這也不能束手待斃隅津,于是我就重新構(gòu)建了一個(gè)ionic的項(xiàng)目,發(fā)現(xiàn)也報(bào)了這個(gè)錯(cuò)誤劲室,這就排除了是安裝cordova出的錯(cuò)誤伦仍,幾番查找資料下來(lái)發(fā)現(xiàn)新建項(xiàng)目報(bào)錯(cuò)的原因有兩個(gè):

  • 第一個(gè)報(bào)警的本質(zhì)問(wèn)題應(yīng)該就是地址被墻了,github.com ping不通導(dǎo)致很洋,兩個(gè)方案最后都使得連接超時(shí)的錯(cuò)誤被解決充蓝;但是這又會(huì)導(dǎo)致第二個(gè)錯(cuò)誤無(wú)法繞過(guò)去
  • 這里兩步其實(shí)是在安裝項(xiàng)目依賴(lài),你會(huì)看到期間有node_module文件夾被創(chuàng)建出來(lái)蹲缠,并在里面不斷生成依賴(lài)庫(kù),但是卻無(wú)法徹底安裝完成悠垛,從而阻塞了其余項(xiàng)目文件的創(chuàng)建线定,導(dǎo)致安裝失敗

總結(jié)起來(lái)就是ionic自帶的創(chuàng)建命令使用的是npm的命令,使得有些依賴(lài)包無(wú)法順利下載下來(lái)确买。使用國(guó)內(nèi)鏡像
的cnpm的命令就能解決問(wèn)題斤讥。這時(shí)的解決方法是:
創(chuàng)建項(xiàng)目的時(shí)候,先行屏蔽掉依賴(lài)的安裝:

ionic start myApp --skip-npm

等到項(xiàng)目創(chuàng)建完畢后湾趾,進(jìn)入項(xiàng)目自動(dòng)創(chuàng)建的myAPP文件夾芭商,再使用npm國(guó)內(nèi)鏡像去安裝依賴(lài):

cnpm install --save

然后使用ionic serce命令就能運(yùn)行起來(lái)了。
觸類(lèi)旁通搀缠,我就試著在我現(xiàn)有的項(xiàng)目下使用

cnpm install --save

發(fā)現(xiàn)使用這個(gè)命令果然加載到了幾個(gè)依賴(lài)包铛楣,然后再運(yùn)行ionic serce命令于是也能正常啟動(dòng)了。

問(wèn)題:

1艺普、 解決解決angular Js中出現(xiàn)unsafe:data:;base64,的問(wèn)題:
問(wèn)題詳情(console/network請(qǐng)求報(bào)錯(cuò)):

unsafe:data:;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQ...

原因:Angular2 拋出此錯(cuò)誤簸州,是因?yàn)锳ngular2 有自身的一套安全過(guò)濾系統(tǒng),src 屬性是資源 URL 安全上下文歧譬,因?yàn)椴豢尚旁纯梢栽谟脩舨恢榈那闆r下執(zhí)行某些不安全的操作岸浑。但如果我們確認(rèn)資源的 URL 是安全的,我們可以使用 Angular 2 中提供的 DomSanitizer 服務(wù)告知 Angular2 該 URL 地址是安全的瑰步。
例如矢洲,需要?jiǎng)討B(tài)綁定一個(gè)url,angular2會(huì)諸如使用:unsafe:xxx的手段缩焦,自動(dòng)把它無(wú)害化读虏。但有時(shí)候它會(huì)導(dǎo)致我們得不到預(yù)期的運(yùn)行結(jié)果责静,當(dāng)我們使用圖片時(shí),直接將其對(duì)象賦值給img標(biāo)簽的src通常會(huì)由于該安全機(jī)制而報(bào)錯(cuò)掘譬。此時(shí)就有必要使用angular2提供的api泰演,即DomSanitizer信任它。

操作:
注入DomSanitizer

import { DomSanitizer } from '@angular/platform-browser'

在construct函數(shù)中聲明

private sanitizer : DomSanitizer

安全包裝url

// 根據(jù)需要調(diào)用下面的方法之一
html = sanitizer.bypassSecurityTrustHtml(html)
script = sanitizer.bypassSecurityTrustScript(script)
style = sanitizer.bypassSecurityTrustStyle(style)
url = sanitizer.bypassSecurityTrustUrl(url)
url = sanitizer.bypassSecurityTrustResourceUrl(url)

2葱轩、 使用angular2進(jìn)行文件上傳:
使用接口詳情:

data: [{
   "title":"IMG_8888_00x",
   "files": ["3.jpg"],
   "subject": "生命科學(xué)"
}]

使用的html:


<img [src]="headers">
<button><span>上傳圖片</span><input type="file" id="uploadVideo" (change)="changeFile($event)"/> </button>  
<button (click)="goToSave()">保存</button>

使用的函數(shù):

// 上傳圖片
 changeFile(event:any){
   let reader = new FileReader();
   let $this:any = this;
   let file:File = event.target.files[0];
   if(file==null){
     return;
   }
   //預(yù)覽圖片
   reader.readAsDataURL(file);
   reader.onload = function(e){
     $this.headers=this.result;
   }
   this.infos.photo=file.name;
   this.files = [];
   this.files.push(file);
 }
//使用接口保存圖片
goToSave(){
   let url_data = this.infos;
   let _this = this;
   _this.url = localStorage.getItem("serveUrl")+"/user/"+_this.user_uuid+"?ticket="+_this.ticket;
   this.mypages.postFile(_this.url,JSON.stringify(url_data),_this.files).then(function(v:any) {
       console.log(v);
   })
 }

核心postFile函數(shù):

postFile(url,data,files){
    let headers = new Headers();
    let body:any;
    var formData = new FormData();
    formData.append('data', data);
    for (var i = 0; i < files.length;i++) {
      formData.append(files[i].name, files[i]);
    }
    body =  formData;
    let options = new RequestOptions({ headers: headers });
    return new Promise(resolve => {
          this.api.put(url, body, options).share().subscribe(res => {
            console.log("putDataOK");
            this.data = res.json();
            resolve(this.data);
          });
      });
  }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末睦焕,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子靴拱,更是在濱河造成了極大的恐慌垃喊,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袜炕,死亡現(xiàn)場(chǎng)離奇詭異本谜,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)偎窘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)乌助,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人陌知,你說(shuō)我怎么就攤上這事他托。” “怎么了仆葡?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵赏参,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我沿盅,道長(zhǎng)把篓,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任腰涧,我火速辦了婚禮韧掩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘窖铡。我一直安慰自己揍很,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布万伤。 她就那樣靜靜地躺著窒悔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪敌买。 梳的紋絲不亂的頭發(fā)上简珠,一...
    開(kāi)封第一講書(shū)人閱讀 51,482評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼聋庵。 笑死膘融,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的祭玉。 我是一名探鬼主播氧映,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼侥钳,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼颜曾!你這毒婦竟也來(lái)了氛赐?” 一聲冷哼從身側(cè)響起扑媚,我...
    開(kāi)封第一講書(shū)人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎藻雪,沒(méi)想到半個(gè)月后砰琢,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體胡桨,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扣孟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年烫堤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凤价。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鸽斟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出利诺,到底是詐尸還是另有隱情富蓄,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布立轧,位于F島的核電站格粪,受9級(jí)特大地震影響躏吊,放射性物質(zhì)發(fā)生泄漏氛改。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一比伏、第九天 我趴在偏房一處隱蔽的房頂上張望胜卤。 院中可真熱鬧,春花似錦赁项、人聲如沸葛躏。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)舰攒。三九已至,卻和暖如春悔醋,著一層夾襖步出監(jiān)牢的瞬間摩窃,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留猾愿,地道東北人鹦聪。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蒂秘,于是被迫代替她去往敵國(guó)和親泽本。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Ionic是一個(gè)基于Angular2的開(kāi)發(fā)手機(jī)web app的框架姻僧,它包含了一整套手機(jī)端的樣式組件规丽,和一系列的功能...
    王兆龍閱讀 1,177評(píng)論 1 1
  • 關(guān)于女人的才華,真的可以說(shuō)很多段化。 我見(jiàn)過(guò)拍照的嘁捷,畫(huà)畫(huà)的,寫(xiě)字的显熏,搞設(shè)計(jì)的雄嚣,她們有很多技能,但這不是真正的才華喘蟆。 一...
    我開(kāi)始寫(xiě)影評(píng)了閱讀 220評(píng)論 0 0
  • 十五年前我來(lái)到人間12.03是我的生日 三十八年前她來(lái)到人間07.14是她的生日 十五年缓升;十五個(gè)生日;十五...
    余山先生閱讀 177評(píng)論 0 4