Laravel宅基地,npm安装 - 无bin链接错误

问题描述:

我使用新鲜的宅基地(箱子版本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

我开发了一个特别的方法,使其一切工作。以下是基本步骤:

  • 首先,建立一个目录了流浪共享文件夹的。它可以是,例如'/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

你可以试试这个,因为它是系统我通常使用:“最大的调用堆栈大小超出”

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

第一npm install后容易出错误用。第二个npm install选择它离开的位置并完成安装。 node-sass此时通常会断开,因此npm rebuild会修复安装node-sass