在Ubuntu 14.04上的MEAN堆栈突然停止工作
好吧,这太臭了,这里是独家新闻:
我正在帮助一个朋友在使用MEAN堆栈(mongodb,express,angular和nodejs)的网站项目上工作,我正在运行Ubuntu 14.04。 我对Linux非常了解,而且我是一名经验丰富的Web开发人员,但我的大部分经验都是使用LAMP堆栈。 直到今天晚上,我一直在做这个MEAN栈项目。 我的朋友跳回到今天晚上的发展,我帮助他们刷新他们在Mac上的节点env(他们大多做前端的HTML / CSS,我做全堆栈)通过运行npm更新和项目工作正常。 指出我可以轻松地刷新我的节点环境,以更加当前我试过同样的事情:
我试图更新我的节点和NPM环境,因为它已经过了几个月(我知道它的坏,我搞砸了,我承认它),我想我正在使用Node.js v 0.3.2.something ,没有想到在这个混乱发生之前检查版本号。 但现在我得到了疯狂的随机错误集,未满足的依赖关系,我无法通过使用npm安装来获取它们来解决未满足的依赖关系,我不能得到grunt来启动开发服务器,我试过删除节点和npm并重新安装(现在运行nodejs 0.10.25)已经运行apt-get update,apt-get install nodejs,apt-get install nodejs-dev,npm update,npm install等,但都无济于事。
我无法坚持和超越沮丧,请帮助! 下面是我得到的一些错误/缺失依赖的示例:
module.js:340 throw err; ^ Error: Cannot find module './helpers' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) npm ERR! weird error 8 npm WARN This failure might be due to the use of legacy binary "node" npm WARN For further explanations, please read /usr/share/doc/nodejs/README.Debian npm ERR! not ok code 0
当我尝试运行sudo grunt,我得到这个:
Loading "jshint.js" tasks...ERROR >> Error: Cannot find module './name-stack.js' Loading "grunt-karma.js" tasks...ERROR >> Error: Cannot find module 'depd' Warning: Task "jshint" not found. Used --force, continuing. Running "concurrent:default" (concurrent) task Loading "jshint.js" tasks...ERROR >> Error: Cannot find module './name-stack.js' Loading "jshint.js" tasks...ERROR >> Error: Cannot find module './name-stack.js' Loading "grunt-karma.js" tasks...ERROR Loading "grunt-karma.js" tasks...ERROR >> Error: Cannot find module 'depd' >> Error: Cannot find module 'depd' [Error: /home/user/Projects/detrashed/node_modules/mongoose/node_modules/mongodb/node_modules/bson/build/Release/bson.node: invalid ELF header] js-bson: Failed to load c++ bson extension, using pure JS version [Error: /home/user/Projects/detrashed/node_modules/connect- mongo/node_modules/mongodb/node_modules/bson/build/Release/bson.node: invalid ELF header] js-bson: Failed to load c++ bson extension, using pure JS version module.js:340 throw err; ^ Error: Cannot find module './collection/batch/unordered' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/home/user/Projects/detrashed/node_modules/connect-mongo/node_modules/mongodb/lib/mongodb/collection.js:21:17) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17)
多么尴尬。 任何帮助或了解如何解除我的nodejs环境的帮助或洞察将非常有帮助,因为我即将把我的头发。 提前致谢!
所以首先,我很抱歉你陷入了这个混乱。 部分原因是npm update
一个错误 – update
不尊重语义版本控制 – 但是不幸的是它还没有被修复,并且一直在咬人。 因此,没有人应该运行npm update
,尤其是从不npm update -g
。
此外,官方的Debian / Ubuntu软件包滞后于目前的版本,并且在从Debian获得的node
npm install
期间有一些讨厌的竞争条件。 幸运的是,有一些由NodeSource提供的包< https://github.com/nodesource/distributions#usage-instructions >
sudo apt-get --purge remove nodejs nodejs-legacy curl -sL https://deb.nodesource.com/setup | sudo bash - sudo apt-get install -y nodejs nodejs-legacy node -v
这应该得到你最新的node
,0.10.35。
然后更新npm
sudo npm install -g npm@latest npm -v
这应该让你最新的npm
,2.1.17(或更高版本)。
现在来恢复你的项目。 首先,我会吹走node_modules并运行npm install
。 如果您从中得到任何错误,请将完整的npm-debug.log文件作为主要的https://gist.github.com发布,并在此处添加链接。
您可能需要重新安装全局软件包bower
和grunt-cli
,以便将其包含在PATH中:
sudo npm i -g bower grunt-cli
有一点需要注意的是,几乎所有的软件包都将被非全局安装。 如果你想在你的命令行PATH中安装一个全局的软件包。
- 如何解决错误信息“Can not find module'abbrev'
- generator-angular-fullstack:如何运行服务器
- Grunt:如何更改不同环境的configurationstring
- WebStorm 7 – Yeoman Angular丢失的源映射`加载资源失败:服务器响应状态为404(Not Found)
- 我怎样才能得到凉亭和咕噜咕噜添加angular-bootstrap用户界面依赖?
- grunt watch任务阻止命令行
- Angularjs无法find模块后与requirejs优化器optmize
- Grunt(节点) – 如何显示可用的任务?
- NodeJS /浏览器交叉开发