NodeJS 从0开始
查看Node 基本配置
$ npm config ls -l
$npm help install
将展开install的help文档
初始化目录 npm init 根据提示完成 将生成package.json
全局安装和本地安装
globally —- This drops modules in {prefix}/lib/node_modules, and puts executable files in {prefix}/bin {prefix} is usually something like /usr/local
locally —- This installs your package in the current working directory. Node modules go in ./node_modules, executables go in ./node_modules/.bin/,
npm install grunt # 本地安装
npm install -g grunt-cli # 全局安装
全局安装将安装到 /usr/local/lib/node_modules中
对于win则是 %APPDATA%\npm\node_modules PS要注意的是 win的路径和linux是相反的
$ npm config ls -l
$npm help install
将展开install的help文档
初始化目录 npm init 根据提示完成 将生成package.json
全局安装和本地安装
globally —- This drops modules in {prefix}/lib/node_modules, and puts executable files in {prefix}/bin {prefix} is usually something like /usr/local
locally —- This installs your package in the current working directory. Node modules go in ./node_modules, executables go in ./node_modules/.bin/,
npm install grunt # 本地安装
npm install -g grunt-cli # 全局安装
全局安装将安装到 /usr/local/lib/node_modules中
对于win则是 %APPDATA%\npm\node_modules PS要注意的是 win的路径和linux是相反的
PS设置Node的代理(在公司中很重要哦)
set HTTP_PROXY=http://proxy.xxxx.com:8080
之后再运行
npm install --save grunt
--save 参数,这个参数的作用,就是会在你安装依赖的同时,自动把这些依赖写入 package.json。命令执行完成之后,查看 package.json,会发现多了一个 dependencies 字段
PS 安装前要确保目录拥有权限 注意要加上sudo
sudo chmond -R 777 yourPath/
使用淘宝镜像
$ npm install xxx --registry=http://registry.npm.taobao.org
$ npm install xxx --save --registry=http://registry.npm.taobao.org
其中xxx是你想要安装的包
--save 参数,这个参数的作用,就是会在你安装依赖的同时,自动把这些依赖写入 package.json。命令执行完成之后,查看 package.json,会发现多了一个 dependencies 字段
PS 安装前要确保目录拥有权限 注意要加上sudo
sudo chmond -R 777 yourPath/
使用淘宝镜像
$ npm install xxx --registry=http://registry.npm.taobao.org
$ npm install xxx --save --registry=http://registry.npm.taobao.org
其中xxx是你想要安装的包
或者这样可以一直使用淘宝镜像 方案来自http://segmentfault.com/a/1190000000471219
npm install -g cnpm --registry=https://registry.npm.taobao.org
PS --save 和 --save-dev区别
devDependencies are for the development-related scripts, e.g. unit testing, packaging scripts, documentation generation, etc.
dependencies are required for production use, and assumed required for dev as well.
dependencies are required for production use, and assumed required for dev as well.
安装好后 当前目录下会出现一个 node_modules 文件夹 里面就有你安装的express 等包
你的app.js 应该是放在和 node_modules同级目录下 而不是 express内(express中也有一个node_modules)
关于require的用法
var foo1 = require('./foo');
var foo2 = require('./foo.js'); //这两种都是引入文件 ./是不能省去的 否则和引入模块混淆
var foo3 = require('foo'); //这个是引入node_modules中的模块
exports 和 module.exports
exports.module = xxx; 给当前模块增加一个xxx属性
module.exports = xxx; 将xxx作为模块返回
require路径 http://nqdeng.github.io/7-days-nodejs/
总之require会先从/home/user/这样的全局目录中加载依赖 然后再是node_modules 下面找
debug node-inspector
$ npm install -g node-inspector --registry=http://registry.npm.taobao.org
$ node --debug app.js //debug模式启动
之后会打开http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858 这个页面 就可以debug了
自动更新node-dev
npm install -g node-dev --registry=http://registry.npm.taobao.org
然后原来运行node app.js 改为 node-dev --debug app.js 运行就可以,这样修改文件后就会自动更新了.
OR nodemon也是相同的功能 还是用nodemon吧 star更多呢
远程调试
远程调试和普通调试一样 node可能是线上的服务器 不运行在本地
参考 http://blog.techbeta.me/2015/10/nodejs-debug/
在node的机器上安装node-inspector
然后打开两个terminal都登陆到服务器
node --debug app.js (默认是5858这个port)
使用7000端口
node --debug=7000 app.js
另一个则是
node-inspector --web-port=8082 (8082是监听端口)
之后会提示
Visit http://127.0.0.1:8082/?port=5858 to start debugging.
那么就访问 http://xxxxx:8082/?port=5858 就可以debug远程的node了 xxxxx就是你的主机名
使用了7000端口则是http://xxxxx:8082/?port=7000