Node.js入门-npm安装以及需要的modules

1.npm

从 php 和 python 来的同学可能对于“包依赖管理”的概念不是太熟悉,ruby 来的同学应该就熟悉多了。

在 python 中,包管理使用 easy_install 或者 pip,ruby 中我们使用 gem。而在 Node.js 中,对应就是 npm,npm 是 Node.js Package Manager 的意思

不同于 ruby 的 gem 装在全局,Node.js 的依赖是以项目为单位管理的,直接就安装在项目的 node_modules 目录下,而且每个依赖都可以有指定版本的其他依赖,这些依赖像一棵树一样。根据我自己的使用经验来说,npm 的体验在 pip 和 gem 之上。

 这就是说,在实际使用时,应该已项目为单位。node命令可以注册为全局使用,那么node_module是否可以这样使用呢?

1.1 node注册为全局命令(添加到环境变量)

 1.1.1 查看环境变量:

 echo $PATH

linux下查看和添加PATH环境变量(来自:http://apps.hi.baidu.com/share/detail/32942984)

$PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接。

  编辑你的 PATH 声明,其格式为:

  PATH=$PATH:<PATH1>:<PATH2>:<PATH3>:------:<PATHN>

  你可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句:$source .bash_profile

  需要注意的是,最好不要把当前路径 “./” 放到 PATH 里,这样可能会受到意想不到的攻击。完成后,可以通过 $ echo$PATH 查看当前的搜索路径。这样定制后,就可以避免频繁的启动位于 shell 搜索的路径之外的程序了。

可用 export命令查看PATH值

[root@localhost u-boot-sh4]# export
declare -x CVS_RSH="ssh"
declare -x DISPLAY=":0.0"
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="localhost"
declare -x INPUTRC="/etc/inputrc"
declare -x LANG="zh_CN.UTF-8"
declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
declare -xLS_COLORS="no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:"
declare -x MAIL="/var/spool/mail/root"
declare -x OLDPWD="/root"
declare -x PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
declare -xPWD="/opt/STM/STLinux-2.3/devkit/sources/u-boot/u-boot-sh4"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -xSSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
declare -x TERM="xterm"
declare -x USER="root"
declare -x XAUTHORITY="/root/.xauthkSzH7b"

单独查看PATH环境变量,可用:

[root@localhost u-boot-sh4]#echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

添加PATH环境变量,可用:

[root@localhost u-boot-sh4]#exportPATH=/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH

再次查看:

[root@localhost u-boot-sh4]# echo $PATH
/opt/STM/STLinux-2.3/devkit/sh4/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

说明添加PATH成功。

述方法的PATH 在终端关闭后就会消失。所以还是建议通过编辑/etc/profile来改PATH,也可以改家目录下的.bashrc(即:~/.bashrc)。
 
第二种方法:
# vim/etc/profile
在文档最后,添加:
export PATH="/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH"
保存,退出,然后运行:
# source/etc/profile

不报错则成功。


默认在安装后已经添加到/usr/bin目录


所以在任何的目录下都是可以使用node命令的。

这样的话,记住几个重要路径:

node安装路径:/usr/node/node-v0.10.34

node中lib路径:/usr/node/node-v0.10.34/lib



node安装modules路径:/usr/loca/lib(建议拷贝到安装路径下面;/usr/node/node-v0.10.34/lib)


上述路径下的node_module也是最完整的。


所以在进行任何的项目时,可以拷贝当前的node_module到对应的工程目录下:


或者在读应的目录下,重新进行需要的包,会有提示错误,缺少哪个就使用npm install 安装哪个模块就好。


备注:

npm install express -g  ,安装完成命令行会提示 npm info ok。参数-g的含义是代表安装到全局环境里面。如果沒有-g的话会安装到当前node_modules目录下(如无则新建node_modules文件夹)。个人不建议初学者使用这种将包安装到全局环境中的做法,因为在js实例代码中,直接通过require()的方式是没有办法调用全局安装包的,报错 throw err;Error: Cannot find module 'express' ,此时可以将node_modules整个文件夹复制一份到你的项目工程下。

全局的安装是供命令行使用的,使用全局方式安装后,用户就可以在命令行中直接运行该组件包支持的命令,好处是可以提高程序的重复利用程度,避免同样的内容存在多份副本。缺点是难以处理不同的版本依赖。

require()是node.js内置函数,用来引入其他模块以备代码中调用模块的函数和变量,默认下node.js会在NODE_PATH和目前js所在项目目录下的node_modules文件夹下去寻找模块。因此,如果是全局安装,不复制系统安装node_modules文件夹到项目node_modules文件夹下,还可以选择将环境变量的NODE_PATH设置为C:\Program Files\nodejs,设置完成后再去项目目录运行命令node app.js就不会报错了。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

终极大招;windows

Windows下的Nodejs npm路径是appdata,很不爽,想改回来,但是在cmd下执行以下命令也无效

npm config set cache "D:\nodejs\node_cache"

npm config set prefix "D:\nodejs\node_global"

最后在nodejs的安装目录中找到node_modules\npm\.npmrc文件

修改如下即可:

prefix = D:\nodejs\node_global
cache = D:\nodejs\node_global

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

3. 指定路径,编译执行:

  1. mkdir ~/local  
  2. ./configure –prefix=$HOME/local/node  
  3. make  
  4. make install  
  5. echo ‘export PATH=$HOME/local/node/bin:$PATH’ >> ~/.profile  
  6. echo ‘export NODE_PATH=$HOME/local/node:$HOME/local/node/lib/node_modules’ >> ~/.profile  
  7. source ~/.profile  
第四步:设置环境变量
如果想重启后还能继续直接使用node命令,那么需要设置环境变量:
使用命令 sudo gedit /etc/profile 打开配置文件,在文件最后中添加如下两行:
export PATH=”$HOME/local/node/bin:$PATH”
export NODE_PATH=”$HOME/local/node:$HOME/local/node/lib/node_modules”


保存后重启系统使设置生效。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值