读《了不起的NodeJS》笔记 - nodejs 包管理(NPM)

关于node安装 篇幅很多就不再这里累赘;
创建一个main.js文件:
代码如下:

var http = require('http');
var colors = require('colors');
console.log('Hello World'.rainbow);
var server = http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.end('<marquee>Learn NodeJS</marquee>');
});
server.listen(3000);

  

require表示相关的依赖包;

新版的node里面自动安装好了npm包管理器:
npm install colors 

即可安装所需的包

在终端窗口

node main.js 
浏览器里面 打开 http://localhost:3000 即可执行效果

一个简单的node程序就开始了。

注意:ubantu下安装后的 执行命令 nodejs main.js 
如果需要更改请自行查看相关文档。。

自定义模块的好处:
1、可以很方便地将项目分享给其他人,不必将整个node_modules目录发给其他人。有了package.json之后,npm install 即可
2、可以很方便的记录所依赖板块的版本号
3、让分享更简单,如果你的项目不错的话,可以通过npm publish发布到npm库里面中供所有人下载

自定义一个colors模块

{
    "name":"colors-project",
    "version": "0.0.1",
    "main": "./main",
    "dependencies":{
        "colors":"0.5.0"
    }
}

npm install 
下载package中定义的模块
node main 
or
node main.js

即可

npm publish
发布到NPM库里面

require(“colors-project”)

main表示 所依赖的模块 在main.js文件中使用

当包里面加上
    "private": true的时候 可以避免误发布


直接npm publish 的时候 会报错:

npm adduser
输入你在https://www.npmjs.org/的账号 即可发布你的NPM模块

然后如果你使用的话 可以 
npm install colors-project

即可

如果自己开发的模块可以发布上去,分享代码 or 给客户部署的话 都会很方便的说。。。

------华丽的分割线--------

安装二进制包:
有的项目需要分发的是Node编写的命令行工具 
这个时候需要增加 -g 标志

npm install -g express

比如我们的项目
npm install -g meteorite 

等等
安装的时候可能会出现错误的情况:

如果是在Linux 下的话 请使用root权限安装:
sudo npm install  -g express

输入管理员密码即可 

windows下的话 使用管理员权限执行cmd 进行操作即可

创建一个新目录:
mkdir node-express
cd  node-express
express
即可 创建一个express 目录

node app
即可执行express

如果你安装了meteorite的 请使用

mrt create node-mrt
cd node-mrt
mrt 

就可以开启meteorite的一个hello world demo

默认端口是3000

// 可以通过
npm search realtime
nom view realtime
等命令
查看关于其他的模块


相关NPM模块资料可查看:
http://www.elmerzhang.com/2011/09/nodejs-module-develop-publish/
http://www.infoq.com/cn/articles/msh-using-npm-manage-node.js-dependence

Express资料:
中文官方:http://expressjs.jser.us/
英文官方:http://expressjs.com/

Meteorite资料:
https://github.com/oortcloud/meteorite
https://www.meteor.com/

以上代码已经测试,如还有错误,欢迎指正;联系QQ:470486732

原文地址:https://www.cnblogs.com/w3cjiangtao/p/3617770.html