跳到主要內容

發表文章

目前顯示的是有「npm」標籤的文章

npm i fail - 查不出原因的處理方式

npm i fail - 查不出原因的處理方式 經歷許多次的 npm 安裝問題,目前有幾種不同的解法。 npm cache issue 可能因為 npm 下載的時候,或者因為連線問題導致模組並沒有完整被安裝,但是 npm 的檢查機制就是只要存在就會跳過安裝步驟,因此當遇到安裝完成,但是執行卻無法的時候,可以嘗試著 rm -rf node_modules # install again npm i 如果是在中間就遇到 fail 的狀態,有可能是因為之前連線問題,並沒有將模組安裝成功,但是資料已經存在 npm cache 資料夾裡面,以往都需要找出這個環境設定,環境路徑才能進行移除,不過現在透過 npm cache 可以簡單做到這件事情 npm cache clean rm -rf node_modules npm i npm version issue 另外一種會再安裝的時候跳出錯誤,會顯示為 npm 版本不符合,或者是 node 版本不符合,這個時候就需要進行安裝更新,最簡單方式就是升級 npm . npm i -g npm 缺少套件 通常最常見的就是有些模組需要透過 gcc, g++ 這是最常見的缺少模組問題,以 mac 環境來說直接透過 brew 就可以安裝完成。 brew install gcc brew install g++ # install again npm i 記憶體不足 最後一種就是屬於記憶體不足的狀態,這通常會很難檢查,實際上 npm 也會跳出錯誤,現在的錯誤資訊都已經比較明顯, npm ERR! node v4.4.1 npm ERR! npm v3.8.6 npm ERR! code ENOMEM npm ERR! errno ENOMEM npm ERR! syscall spawn npm ERR! spawn ENOMEM 如果遇到這種狀況,請重新調整記憶體分配,如果是採用 vps, 就看能不能夠 scale up ,讓機器的記憶體提升,就可以解決問題。 後記 以上都是踩過的雷,以及在嘗試許多 node.js 專案時會遇到的問題,我們也經常在摸索中,不過從摸索以及找到答案的過程都繞了許多遠路,希望透過分享可以讓大家更瞭解 npm 錯誤時可以怎麼處理。

MySQL disconnect fail in node.js by jugglingDB

MySQL disconnect fail in node.js by jugglingDB Node.js 目前透過社群的力量,目前已經擁有許多第三方連接 database 的模組,我們可以透過這些模組輕易的連街上 database, 在這邊我們選用了 jugglingDB 作為開發用的 ORM 模組。 jugglingDB 包含許多不同種類的 database adapter 提供開發者參考。 這邊我們使用的是 node.js mysql 的連接方法,當然也是要和 jugglingDB 串接,程式碼如下。 Schema = require("jugglingdb").Schema db = new Schema("mysql", database: "myapp_test" username: "user" password: "user1234" ) db.client.end() 當我們執行的時候卻會發現,錯誤資訊出現如下 Error: Cannot enqueue Query after invoking quit. at Protocol._validateEnqueue (/Users/caesarchi/workspace/clonn/node-module-example/jugglingdb/node_modules/jugglingdb-mysql/node_modules/mysql/lib/protocol/Protocol.js:142:16) 經過一段時間終於找到解決方案 Solution 一開始以為是 apdater 的問題,導致會產生這個問題,最後發現主要是 flow control 的問題,也許你看修改後的程式碼就可以更為清楚 Schema = require("jugglingdb").Schema db = new Schema("mysql", database: "myapp_test" username: "user" password: "us...

[教學] nodeJS直接module加載於windows native node

NodeJS 終於在0.5.1(unstable) 版本提供了Windows native supprot.,但是美中不足的部份就是childprocess的功能支援不完全,因此無法透過node.exe來 安裝npm 。 這樣子會造成很多遺憾,例如socket.io, redis, mysql等其他外掛模組都無法加載進來,本篇文章就是講解如何直接將這些外部module加載進來,不需要經過npm或者其他腳本語言安裝module。 設定環境變數 下載node v0.5.2 native windows 將node.exe放置到自己的資料夾中(這邊預設為 c:\node )

[教學] CSSLint 檢查CSS 安裝及教學. How use CSSLint

前端工程總是需要很多的工具搭配和經驗,Javascript 已經有套很好用的檢驗工具JSLint,而今天介紹的就是使用CSSLint,CSSLint顧名思義,就是用來檢查CSS的項目,當然裡面有許多檢查的範圍,這篇文章就不一一贅述。 CSSLint最棒的地方就是目前有直接線上網站檢查機制。這套工具是由 Nicole Sullivan , Nicholas C. Zakas 共同製作的工具同時也是放置 Github Open source專案 ,CSSLint檢查工具是搭配 NPM 所發展的CLI檢查工具,讓開發者編寫完CSS之後可以立即檢查,透過工具檢查機制,可以讓犯錯的機會降低,這就是工具發展的願景,更也是大家共同的目標。話不多說,直接看看怎麼使用CSSLint。 CSSLint: 線上網站 CSSLint Source code 檢查標準官方有列出所有檢查機制 安裝以及執行CSSLint: npm install csslint -global

[教學] 使用forever 監控NodeJS程式. Use forever watch nodejs program.

NodeJS裡面最常遇到就是程式流程異常,導致整個程式毀掉,而這個結果小則導致跳出例外處理,大則變成整個NodeJS異常關閉。如果是一個已經上線的程式,怎麼可以讓這種事情發生呢!而且整個監控無法開啟多個process來處理,每次希望做個測試,都需要先把正在執行的process關閉(kill process)。 其實我的需求很簡單: 能夠讓NodeJS程式背景執行 同時能夠執行數個NodeJS程式 當程式當掉能夠自動重起 因此找到了一套npm的cli 工具 - forever ,由 Charlie Robbins 所建立的 Open source 專案 ,目前這個監控工具也使用於 nodejitsu cloud service ,所以理論上可以放心使用,大膽的測試,畢竟是open source,如果覺得不符合自己預期,可以直接修改程式碼。