读《了不起的NodeJS》笔记 - nodejs 包管理(NPM)
关于node安装 篇幅很多就不再这里累赘;
创建一个main.js文件:
代码如下:
1
2
3
4
5
6
7
8 |
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模块
1
2
3
4
5
6
7
8 |
{ "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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。