2016-11-10 78 views
0

我使用新鮮的宅基地(箱子版本0.5)爲一個新鮮的Laravel 5.3應用程序。主機操作系統是Windows 10Laravel宅基地,npm安裝 - 無bin鏈接錯誤

運行npm install --no-bin-links

npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue 
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue 
npm WARN deprecated [email protected]: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to [email protected]^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree. 
npm ERR! Linux 4.4.0-22-generic 
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "--no-bin-links" 
npm ERR! node v5.12.0 
npm ERR! npm v3.8.6 

npm ERR! Maximum call stack size exceeded 
npm ERR! 
npm ERR! If you need help, you may report this error at: 
npm ERR!  <https://github.com/npm/npm/issues> 

npm ERR! Please include the following file with any support request: 
npm ERR! /home/vagrant/t1/t1/npm-debug.log 

NPM-的debug.log

......... 
71199 silly build [email protected] 
71200 silly build [email protected] 
71201 silly build [email protected] 
71202 silly build [email protected] 
71203 silly build [email protected] 
71204 silly build [email protected] 
71205 silly build [email protected] 
71206 silly build [email protected] 
71207 silly build [email protected] 
71208 silly build [email protected] 
71209 silly build [email protected] 
71210 verbose stack RangeError: Maximum call stack size exceeded 
71210 verbose stack  at process.stderr (internal/process/stdio.js:23:46) 
71210 verbose stack  at isTTY (/usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/progress-bar.js:11:17) 
71210 verbose stack  at Object.ProgressBar.show (/usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/progress-bar.js:132:8) 
71210 verbose stack  at Object.ProgressBar.pulse (/usr/lib/node_modules/npm/node_modules/npmlog/node_modules/gauge/progress-bar.js:124:8) 
71210 verbose stack  at EventEmitter.log.emitLog (/usr/lib/node_modules/npm/node_modules/npmlog/log.js:178:40) 
71210 verbose stack  at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/node_modules/npmlog/log.js:170:8) 
71210 verbose stack  at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/node_modules/npmlog/log.js:231:21) 
71210 verbose stack  at tracker.(anonymous function) [as silly] (/usr/lib/node_modules/npm/node_modules/npmlog/log.js:79:19) 
71210 verbose stack  at module.exports (/usr/lib/node_modules/npm/lib/install/action/build.js:8:7) 
71210 verbose stack  at actions.(anonymous function) (/usr/lib/node_modules/npm/lib/install/actions.js:48:12) 
71211 verbose cwd /home/vagrant/t1/t1 
71212 error Linux 4.4.0-22-generic 
71213 error argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "--no-bin-links" 
71214 error node v5.12.0 
71215 error npm v3.8.6 
71216 error Maximum call stack size exceeded 
71217 error If you need help, you may report this error at: 
71217 error  <https://github.com/npm/npm/issues> 
71218 verbose exit [ 1, true ] 

沒有--no-bin-links它的作品(當然如果不是共享文件夾內),當我得到這個錯誤

更新節點和npm(6.9.1,3.10.8),同樣的問題。

+0

有點晚了,但你解決了嗎?怎麼樣?我處於同樣的情況...... – andcl

+0

@ andcl85不,我剛剛使用主機(和'artisan serve' iirc)的npm,同時仍然使用Homestead進行數據庫操作。後來我換成了紗線,'紗線 - 無法鏈接'似乎工作正常。 – AlexP11223

+0

謝謝。我一直在開發一種方法,使它能夠使用Homestead工作;)。我正在解答它的答案。 – andcl

回答

1

我開發了一個特別的方法,使其一切工作。以下是基本步驟:

  • 首先,建立一個目錄了流浪共享文件夾的。它可以是,例如'/home/vagrant/node'。
  • 就在這裏,我們會複製我們的Laravel安裝中的package.json文件,告訴npm要安裝什麼......請注意,最近創建的'node'目錄是在Unix系統中,與我們的Windows無關主機(因爲它不是兩者之間的共享文件夾的一部分)。
  • 第三,我們將運行NPM安裝命令(不--no斌鏈接選項Unix的支持符號鏈接不應該有任何錯誤。)
  • 最後,我們將移動「node_modules '目錄直接返回到我們的Laravel安裝文件夾(共享文件夾),但是已經從Windows主機中的具有管理特權的控制檯運行vagrant up命令。否則,嘗試移動創建的符號鏈接將導致錯誤。

它將全部工作,因爲它是服務於Laravel應用程序的Unix機器。 此過程將幫助您安裝Laravel Mix,而不會出現任何問題。

乾杯!

+0

hm。如果它允許在以admin身份運行時移動符號鏈接,是不是可以在不移動的情況下在這裏創建它們?每次你想添加軟件包時都這樣做似乎很不方便:)也許它至少可以自動執行,比如使用npm預安裝腳本。但我認爲最簡單的解決方案只是切換到紗線:)它還具有很好的功能,如yarn.lock和更快的安裝。 (它可以通過在項目根目錄中簡單地添加命令https://yarnpkg.com/en/docs/install#linux-tab到after.sh來安裝到Homestead) – AlexP11223

+0

我的經驗是一旦安裝,每次連續npm安裝命令不會拋出錯誤,從而產生最佳解決方案。每次添加小包時,都沒有必要這樣做;) – andcl

0

你可以試試這個,因爲它是系統我通常使用:「最大的調用堆棧大小超出」

> npm install --no-bin-links 
> npm install --no-bin-links 
> npm rebuild node-sass 

第一npm install後容易出錯誤用。第二個npm install選擇它離開的位置並完成安裝。 node-sass此時通常會斷開,因此npm rebuild會修復安裝node-sass