Laravel Homestead,npm install --no-bin-links错误

时间:2016-11-10 17:06:41

标签: laravel npm vagrant npm-install homestead

我正在使用新鲜的Homestead(包装盒版本0.5)来购买新的Laravel 5.3应用程序。主机操作系统是Windows 10。

运行npm install --no-bin-links

时出现此错误
npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^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 replace-ext@0.0.1
71200 silly build vinyl@1.2.0
71201 silly build require-dir@0.3.1
71202 silly build require-directory@2.1.1
71203 silly build require-main-filename@1.0.1
71204 silly build resolve@1.1.7
71205 silly build rechoir@0.6.2
71206 silly build resolve-url@0.2.1
71207 silly build rev-hash@1.0.0
71208 silly build rev-path@1.0.0
71209 silly build right-align@0.1.3
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),同样的问题。

2 个答案:

答案 0 :(得分:2)

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

  • 首先,从Vagrant共享文件夹中创建目录。它可以是,例如,' / home / vagrant / node '。
  • 就在那里,我们将从Laravel安装中复制 package.json 文件告诉npm要安装什么...请注意,最近创建的'node'目录是在Unix系统中,没有任何内容与我们的Windows主机有关(因为它不是两者之间的共享文件夹的一部分)。
  • 第三,我们将运行 npm install 命令(没有--no-bin-links选项,因为Unix支持符号链接。应该没有错误;)
  • 最后,我们将' node_modules '目录移回我们的Laravel安装文件夹(共享文件夹),但是从控制台运行 vagrant up 命令使用Windows主机中的管理员权限。否则,尝试移动创建的符号链接将导致错误。

它将全部工作,因为它是为Laravel应用程序提供服务的Unix机器。 此过程将帮助您毫无问题地安装Laravel Mix。

干杯!

答案 1 :(得分: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安装。