NodeJs在Linux下使用的各种问题解决
<p>环境:ubuntu16.04</p>
<p>
<span><strong>ubuntu中安装NodeJs</strong></span></p>
<p>
通过apt-get命令安装后发现只能使用nodejs,而没有node命令</p>
<p>
如果想避免这种情况请看下面连接的这种安装方式:</p>
<p>
拓展见:Linux下Nodejs安装(完整详细)</p>
<p>
如果想解决问题的话,输入下面的命令即可</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_96048">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">sudo</code> <code class="bash functions">ln</code> <code class="bash plain">-s </code><code class="bash plain">/usr/bin/nodejs</code> <code class="bash plain">/usr/bin/node</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<img title="NodeJs在Linux下使用的各种问题解决" alt="NodeJs在Linux下使用的各种问题解决" src="https://zhuji.jb51.net/uploads/img/202305/247de48af39cacaccde80d7cc66af03f.jpg"></p>
<p>
<span><strong>npm intsall安装依赖报错</strong></span></p>
<p>
在package.json中添加:</p>
<p>
"private": true</p>
<p>
拓展见:npm WARN package.json: No repository field</p>
<p>
<span><strong>安装npm包的权限问题</strong></span></p>
<p>
安装npm包的时候使用sudo权限</p>
<p>
<img title="NodeJs在Linux下使用的各种问题解决" alt="NodeJs在Linux下使用的各种问题解决" src="https://zhuji.jb51.net/uploads/img/202305/0a1b505065bd9eeefed05c75d4ddf5e5.jpg"></p>
<p>
<span><strong>安装gem后报错</strong></span></p>
<p>
Failed to build gem native extension ...</p>
<p>
遇到这样的情况通过下面的命令解决</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_848641">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">ruby1.9.1-dev</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
或者</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_375631">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">ruby-dev</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
拓展见:Failed to build gem native extension — Rails install</p>
<p>
<span><strong>添加淘宝源</strong></span></p>
<p>
使用</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_54591">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">sudo</code> <code class="bash plain">npm </code><code class="bash functions">install</code> <code class="bash plain">-g cnpm --registry=https:</code><code class="bash plain">//registry</code><code class="bash plain">.npm.taobao.org</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
添加淘宝源后,运行cnpm报错</p>
<p>
<img title="NodeJs在Linux下使用的各种问题解决" alt="NodeJs在Linux下使用的各种问题解决" src="https://zhuji.jb51.net/uploads/img/202305/ecd497e9db9f24cff99b891cdb95804c.jpg"></p>
<p>
那是因为乌班图下已经有个node命名的模块</p>
<p>
执行下面这段代码解决:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_352580">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">sudo</code> <code class="bash functions">ln</code> <code class="bash plain">-s </code><code class="bash plain">/usr/bin/nodejs</code> <code class="bash plain">/usr/bin/node</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
然后你输入node,就没问题了。</p>
<p>
拓展见:nodejs vs node on ubuntu 12.04</p>
<p>
<span><strong>npm与cnpm的异同</strong></span></p>
<p>
cnpm一般被称为淘宝源的npm命令</p>
<p>
npm就是npmjs源的包命令</p>
<p>
一般在天朝为了速度,都会换源。下面的命令可以换源</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_957068">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">npm config </code><code class="bash functions">set</code> <code class="bash plain">registry https:</code><code class="bash plain">//registry</code><code class="bash plain">.npm.taobao.org</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
虽然可以cnpm命令用着速度起来了,但是你如果还开发nmp模块的时候,可能会因为换源而遇到坑。</p>
<p>
在你使用npm adduser的时候,你输入用户名,密码,邮箱后总是报错。</p>
<p>
可能提示你密码或用户名错误,但是你发现你网页登陆npmjs没问题。</p>
<p>
那是因为你将npm的源换成了淘宝的,所以你登陆的是淘宝的npm,当然报错了。</p>
<p>
你可以查看你的.npmrc文件,看看你的源是什么</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_642783">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">registry=https:</code><code class="bash plain">//registry</code><code class="bash plain">.npmjs.org/</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">//registry</code><code class="bash plain">.npmjs.org/:_authToken=.....</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
所以正确的换源是:将两个命令都保留。</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_102261">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">//</code><code class="bash plain">使用npm安装全局cnpm</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">sudo</code> <code class="bash plain">npm </code><code class="bash functions">install</code> <code class="bash plain">-g cnpm --registry=https:</code><code class="bash plain">//registry</code><code class="bash plain">.npm.taobao.org</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
这样会产生一个.cnpmrc文件</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_164472">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">registry=https:</code><code class="bash plain">//registry</code><code class="bash plain">.npm.taobao.org</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">...</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
这样既不耽误开发npm模块,也不影响你安装依赖的速度。</p>
<p>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。</p>
<p>
原文链接:http://www.cnblogs.com/zqzjs/archive/2016/11/29/6113350.html</p>
頁:
[1]