我试图运行npm install
,这是从控制台输出的:
npm ERR! Linux 4.8.0-27-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v6.9.1
npm ERR! npm v3.10.8
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-debug.log
的内容:
113791 verbose stack RangeError: Maximum call stack size exceeded
113791 verbose stack at Object.color (/usr/lib/node_modules/npm/node_modules/npmlog/node_modules/console-control-strings/index.js:115:32)
113791 verbose stack at EventEmitter.log._format (/usr/lib/node_modules/npm/node_modules/npmlog/log.js:252:51)
113791 verbose stack at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/node_modules/npmlog/log.js:138:24)
113791 verbose stack at emitThree (events.js:116:13)
113791 verbose stack at emit (events.js:194:7)
113791 verbose stack at .<anonymous> (/usr/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js:23:18)
113791 verbose stack at emitThree (events.js:116:13)
113791 verbose stack at emit (events.js:194:7)
113791 verbose stack at .<anonymous> (/usr/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js:23:18)
113791 verbose stack at emitThree (events.js:116:13)
113791 verbose stack at emit (events.js:194:7)
113792 verbose cwd /home/giorgi/AdMove/dev/web-advertiser-admove
113793 error Linux 4.8.0-27-generic
113794 error argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
113795 error node v6.9.1
113796 error npm v3.10.8
113797 error Maximum call stack size exceeded
113798 error If you need help, you may report this error at:
113798 error <https://github.com/npm/npm/issues>
113799 verbose exit [ 1, true ]
多次删除node_modules
并尝试重新安装。无法理解导致此问题的原因以及解决方法。
答案 0 :(得分:24)
metzelder's answer帮助我解决了该问题。但是,如果您运行命令npm cache clean
,它将向您显示一条消息
从npm @ 5开始,npm缓存会因损坏问题而自我修复,并且保证从缓存中提取的数据是有效的
因此,从npm5开始,您可以通过在命令中添加--force
标志来实现。
所以命令是:
npm cache clean --force
答案 1 :(得分:23)
npm重建-它解决了我的问题
答案 2 :(得分:11)
我对npm install
有相同的问题。
经过大量搜索,我发现删除您的.npmrc
文件或其内容(位于%USERPROFILE%/.npmrc
)可以解决此问题。这对我有用。
答案 3 :(得分:4)
我也遇到了同样的问题,这就是我解决的方法。
首先,您需要确保您的节点和npm版本是最新的。如果没有,请升级您的节点和npm软件包到最新版本。
nvm install 12.18.3 // update node version through node version manager
npm install npm // update your npm version to latest
删除您的node_modules
文件夹和package-lock.json
文件。
使用以下命令强制清理整个NPM缓存。
npm cache clean --force
重新安装所有依赖项。
npm install
如果上述步骤不能解决问题,请在执行以下命令后尝试重新安装依赖项。
npm rebuild
答案 4 :(得分:3)
npm uninstall
npm cache clean --force
我正在使用这两种方法,但是没有用。在ım删除节点模块并再次进行npm安装后,它又无法正常工作了。最后ım使用以下方法删除package-lock.json并创建新的package-lock.json文件
npm install
好吧!
答案 5 :(得分:3)
对于我来说,请更新到最新版本:
npm install -g npm
答案 6 :(得分:3)
发生在docker(节点:15个破坏者)中。
请记住使用WORKDIR /<folder>
,以免与安装的原始npm库冲突。
该文件夹可以是系统文件夹以外的任何文件,因此包括使用/
。
答案 7 :(得分:2)
我通过以下方式克服了这个问题:
删除npm依赖项的所有内容。您可以根据以下线程找到默认安装位置: https://stackoverflow.com/a/5926706/1850297
在运行 @Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Bundle bundle=getIntent().getExtras();
String fullNameFinal = bundle.getString("fullName");
String courseFinal = bundle.getString("course");
int avgAttendanceFinal= bundle.getInt("avgAttendance");
boolean logInStatusFinal = bundle.getBoolean("logInStatus");
nameTextView=(TextView)findViewById(R.id.nameTextView);
courseTextView=(TextView)findViewById(R.id.courseTextView);
nameTextView.setText(fullNameFinal);
courseTextView.setText(courseFinal);
overridePendingTransition(R.anim.slide_in, R.anim.slide_out);
ListView lv;
Context context;
ArrayList prgmName;
int [] prgmImages={R.drawable.listblockgold,R.drawable.listblockindigo,R.drawable.listblocklime,R.drawable.listblockorange,R.drawable.listblockpink,R.drawable.listblockred,R.drawable.listblocksilver,R.drawable.listblocktan,R.drawable.listblockteal};
String [] prgmNameList={"Maths","P.Comm.","IOT","Operating Systems","Web Programming","DSP","PHP","Jquery","JavaScript"};
context=this;
lv=(ListView) findViewById(R.id.testListView);
lv.setAdapter(new CustomAdapter(this, prgmNameList,prgmImages));
`AddSubject Activity`
public class AddSubject extends AppCompatActivity {
//Buttons
Button missedMinus;
Button missedPlus;
//ButtonsEnd
//TextViews
TextView safeBunksNumber;
TextView missedLectures;
TextView totalLecturesTextView ;
TextView percentageTextView;
//TextViewsEnd
EditText missedLecturesTextView;
ProgressBar progressBar;
static String s= Integer.toString(10);
public void missedMinusClick(View view)
{
totalLecturesTextView=(TextView)findViewById(R.id.totalLecturesTextView);
int totalLectures= Integer.parseInt(totalLecturesTextView.getText().toString());
missedLecturesTextView=(EditText)findViewById(R.id.missedLecturesTextView);
int missedLectures= Integer.parseInt(missedLecturesTextView.getText().toString());
missedLecturesTextView.setText(Integer.toString(missedLectures-1));
safeBunksNumber=(TextView)findViewById(R.id.safeBunksNumber);
int safeBunksNumber;
}
public void missedPlusClick(View view2)
{
missedLecturesTextView=(EditText)findViewById(R.id.missedLecturesTextView);
int missedLectures= Integer.parseInt(missedLecturesTextView.getText().toString());
missedLecturesTextView.setText(Integer.toString(missedLectures+1));
}
public void submitOnClick1(View view3)
{
EditText subName = (EditText)findViewById(R.id.subName);
EditText totalLecturesTextView = (EditText)findViewById(R.id.totalLecturesTextView);
EditText missedLecturesTextView =(EditText)findViewById(R.id.missedLecturesTextView);
String subjectName = subName.getText().toString();
int totalLectures = Integer.parseInt(totalLecturesTextView.getText().toString());
int missedLectures = Integer.parseInt(missedLecturesTextView.getText().toString());
SharedPreferences sharedPreferences = this.getSharedPreferences("com.example.yashrandive.attendancemanager", Context.MODE_PRIVATE);
sharedPreferences.edit().putString("subName",subjectName);
sharedPreferences.edit().putInt("totalLectures",totalLectures);
sharedPreferences.edit().putInt("missedLectures",missedLectures);
}
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_subject);
}
}
命令之前,我建议运行npm install
答案 8 :(得分:2)
我也有同样的问题。我曾经尝试过以前的解决方案,但是对我来说解决方案要简单得多。我只需要删除目录中的空间,然后再次运行npm i
感谢:https://github.com/nodejs/node-gyp/issues/809#issuecomment-155019383指出了这一点。
答案 9 :(得分:1)
我删除了
node_modules
,然后通过
重新安装npm安装
对我有用
答案 10 :(得分:1)
我解决了100%的gulp版本存在此问题:3.5.6。
您应先清理package-lock.js,然后运行npm install
并使其正常工作
答案 11 :(得分:1)
我刚刚npm rebuild
就像魅力一样运作。
答案 12 :(得分:1)
我遇到了同样的错误,我试图将jest安装到monorepo项目的一个软件包中。
如果您使用Yarn + Learna打包monorepo项目,则必须导航到目标程序包中的package.json,然后运行None
或npm install
。
答案 13 :(得分:1)
万一这些答案对您都不起作用,可能是因为您使用的终端机不正确/您的node_modules
被计算机的另一部分使用了。
就我而言,在执行sudo npm i
时,我一直在这个错误(超出最大调用堆栈大小)和访问错误事件之间徘徊。
解决方法是关闭我的IDE(这是webstorm),在基本终端中运行npm i
,就是这样。
答案 14 :(得分:1)
我不是 Windows用户,因此,如果您是,请尝试检查Rene Knop comment。
对于 Unix / OSX 用户,我已经删除了根 .npmrc 文件~/.npmrc
。
在尝试之前,请,检查是否没有必要(对您而言),然后使用以下命令将所有内容带入终端:cat ~/.npmrc
。
如果您有类似的内容:
cat: /Users/$USER/.npmrc: No such file or directory
如果那边有一些内容
(您可以保存此文件cp ~/.npmrc ~/.npmrc_copy
的副本)
尝试使用此文件删除该文件:
(适用于bash用户:Unix / Ubuntu / OSX ...)
rm -f ~/.npmrc
这对我有用。
希望这可以解决其他人的问题。
答案 15 :(得分:1)
尝试删除package-lock.json
和node-modules
文件夹:
rm package-lock.json
rm -r node_modules
答案 16 :(得分:1)
npm缓存清除在消息下方返回
从npm @ 5开始,npm缓存会因损坏问题而自我修复,并且保证从缓存中提取的数据是有效的。如果要确保所有内容都一致,请改用“ npm cache verify”。另一方面,如果要调试安装程序中的问题,则可以使用
npm install --cache /tmp/empty-cache
来使用临时缓存,而不是破坏实际的缓存。
如果您按照上述说明运行npm缓存验证,则实际上会运行缓存验证和垃圾回收来解决问题
已验证并压缩缓存(〜\ AppData \ Roaming \ npm-cache_cacache): 验证的内容:6183(447214684字节)垃圾回收的内容:16 (653745字节)索引条目:9633
答案 17 :(得分:1)
大多数情况下,如果您使用的是您工作的组织提供的系统,并且它的 vpn 限制使用此命令,则会出现此问题。 在这种情况下,您可以尝试断开与组织 vpn 的连接,然后执行此命令。
答案 18 :(得分:0)
npm cache clean --force
这对我来说适用于节点8和npm 6 +
答案 19 :(得分:0)
echo 65536 | sudo tee -a /proc/sys/fs/inotify/max_user_watches
在Ubuntu上为我工作。
答案 20 :(得分:0)
如果您尝试安装一个不存在的软件包,或者尝试安装一个不存在的版本,也会发生此问题。
答案 21 :(得分:0)
以下步骤可帮助我解决此问题:
npm cache clean --force
npm install
答案 22 :(得分:0)
该错误消息可能与您尝试运行的npm过程没有直接关系,可能是其他正在运行的节点进程发生冲突或耗尽了资源。
在我的情况下,我有一个空的node_modules文件夹,该文件夹是最近一次初始化时重新创建的,仍然存在
npm ERR!超出了最大调用堆栈大小
运行SELECT
进行WordPress插件开发时。
问题是在我的wp-content文件夹中运行的实时重载监视程序,第一次停止了安装。
答案 23 :(得分:0)
In my case Maximum call stack size exceeded
由先前的另一个错误触发。日志看起来像这样:
// ... skipping some deprecation warnings
> core-js@3.6.5 postinstall /root/.nvm/versions/node/v14.10.0/lib/node_modules/@aws-amplify/cli/node_modules/amplify-graphql-types-generator/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"
sh: 1: node: Permission denied
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.1.2 (node_modules/@aws-amplify/cli/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm ERR! Maximum call stack size exceeded
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-09-10T14_10_28_397Z-debug.log
请注意sh: 1: node: Permission denied
导致我进入https://forum.vuejs.org/t/cannot-install-vue-cli-permission-error-in-require-postinstall/82017/7
我必须在安装命令中添加--unsafe-perm
并以root身份运行它:
sudo npm install -g --unsafe-perm @aws-amplify/cli
答案 24 :(得分:0)
通常,一旦安装了模块,使用TOP_RESOLUTION
代替npm ci
更为方便。请在生产环境中签出this SO answer for the advantages of the former with respect to the later。
所以请运行
npm install
所有依赖项将被更新,问题将消失。否则,如果彼此之间存在严重的不同步,就会出错。
答案 25 :(得分:0)
我遇到了这个问题,结果发现,我在node_modules
中有一个符号链接,指向它的父级,即
[user@localhost]$ ls -la /path/to/project/node_modules
total 3272
...
lrwxrwxrwx 1 user user 50 Nov 26 18:38 node_modules -> ../node_modules
...
我的意思是,我以某种方式弄乱了bash脚本,并创建了一个圆形的符号链接。删除符号链接可以解决此问题。
答案 26 :(得分:0)
rm -rf node_modules
然后重新安装对我有用。
注意:可能不需要清除锁定文件
答案 27 :(得分:0)
我遇到了同样的问题,但就我而言,我从一开始就一直使用yarn
,但是从某些软件包自述文件中,我复制了npm install
命令并收到此错误。后来意识到yarn add <package-name>
解决了该问题,并安装了软件包。
将来可能会对某人有所帮助。
答案 28 :(得分:0)
我遇到了类似的错误。我将其归结为npm无法从.bin文件夹中删除npm链接文件夹的文件。因此,我进入了rm -rf,从npm link'd文件夹中删除了所有.bin文件夹。
.image_with_loader_container {
position: relative;
width: 100%;
padding-bottom: 139.34426%;
background: #dbdbdb;
}
.image_with_loader_container img {
border-radius: 4.75%/3.5%;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
问题解决了。
答案 29 :(得分:0)
今天,即使在运行npm prune
之后的 中运行npm cache clean --force
时,也会遇到此错误。
版本:
node 13.8.0
npm 6.13.6
删除package-lock.json
也适用于这种情况。谢谢大家!
答案 30 :(得分:0)
如果您的默认npm注册表不是公共npm存储库(您可以通过转到.npmrc文件或通过npm CLI命令检查npm配置来进行检查),则可以尝试取消设置注册表配置,以便它返回到公共npm存储库。然后再次运行npm install
。
如果您的依赖项在公共npm存储库中不可用,请尝试从package.json中临时删除那些依赖项。这将允许您运行npm install
。最后,还原您删除的依赖项和注册表配置,并最后一次运行npm install
来安装其余的依赖项。
答案 31 :(得分:0)
对于那些在使用Jenkins(或任何CI)构建Docker映像时遇到此问题的人,请确保将package-lock.json
也复制到容器中。
COPY ./src/package*.json /home/node/
RUN npm install
对于我们来说,安装实际上进行得很好,仅在为生产映像运行npm prune production
时发生错误。
答案 32 :(得分:0)
改用纱为我解决了这个问题。
答案 33 :(得分:0)
在Mac上最终对我有用的一件事是使用NVM从节点8.12升级到10.x。
我用NVM卸载了所有其他版本的Node,然后安装了10.x,然后运行nvm alias default node
,这告诉NVM始终默认使用Shell上的最新可用节点版本。
那之后,我的实时重载问题就消失了!
答案 34 :(得分:0)
我尽一切努力在Windows 7计算机上解决此问题,例如
重新安装和重建npm
最后,我浪费了一整天的时间来解决此小型配置设置问题。
在全局.npmrc中删除我的项目特定配置 在驱动器位置:/ Windows / Users /../。npmrc
答案 35 :(得分:0)
您卸载npm软件包并强制清理缓存并关闭终端,然后重新安装其中的任何软件包。
$sudo npm uninstall <package - name>
$sudo npm cache clean --force
然后重新启动终端并检查
仍然无法正常工作,将npm和node都升级到最新版本
答案 36 :(得分:0)
我遇到了这个问题,这是由于我的git可执行文件升级了。我回滚到Git-2.21.0.rc1.windows.1-64-bit并将其添加到我的环境路径中,它解决了我的问题。
答案 37 :(得分:0)
我已尽一切努力在Mac上解决此问题。我认为当我已经从Node.js下载npm并随后使用Teambrhouse视频同时使用Homebrew重新安装了npm时,问题就开始了。
来自https://docs.npmjs.com/misc/removing-npm
sudo npm uninstall npm -g
sudo make uninstall
sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/npm*
来自How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X)
sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}
最后,对我有用的唯一方法是从GitHub克隆npm-reinstall存储库,从而完全删除了Mac上与npm相关的所有内容。
https://github.com/brock/node-reinstall
然后我不得不从Node.js重新安装node和npm。
答案 38 :(得分:-1)
要解决此问题,请先清除 npm cache
,然后重新安装npm软件包,以解决此问题
运行 清理缓存
npm cache clean --force
然后 这个阶段很重要
npm rebuild
最后 重新安装节点模块
npm install
祝你好运
答案 39 :(得分:-2)
再次运行npm install
非常简单,但我不知道还有谁尝试过这个,所以我认为我应该把它放在这里,尽管有所有现有的答案。不过,我建议人们先先尝试这个,因为这是最简单的解决方案,并且不会带来其他人在删除 package-lock.json 时注意到的风险
这完全未经证实,因为我这样做只是为了运行代码屏幕(即对我来说是一个全新的存储库),而且我猜测某些软件包已在第一次运行 npm install
时安装;只是后来资源用完了。
我猜,如果我再次运行 npm install
,它会跳过现在安装的软件包的安装并完成,或者至少进一步安装。我猜测的行为是我所看到的,但我实际上并没有调试或测试这种行为是否出于我猜测的原因!
很明显,很多不同的事情对不同的人都有效,但我认为我应该在这个已经回答得很好的问题上添加一个答案,因为这是最简单的事情。
如果幸运的话,它会运行足够长的时间让您抢到 ? 或 ☕ ?