代码的部署与组织
要添砖先搭框架,现代楼房遵循的原理,我们编写程序也是一样的。
模块路径解析规则
内置模块直接调用,例如:require('fs');
node_modules目录
这里一般说的是我们npm install后的模块,也是可以直接调用,比如:require('react');NODE_PATH环境变量
与PATH环境变量类似,NodeJs允许通过NODE_PATH指定额外的模块搜索路径。
-
包(package)
人大代表就是代表我们每个人民去发表大家的意见。这里的包就相当于人大代表,人民就相当于子模块。
因此我们需要一个入口文件entry.js来集合其他子模块。
但是我们引入包的时候还是要require('##/entry.js'),显得并不是很好,于是在包目录下创建一个package.json文件配置路径,直接访问包。
例如:
-test/ -lib/ part1.js part2.js entry.js package.json
package.json如下
{ "name":"test", "main":"./lib/entry,js" }
这样一来可以直接require(./test)加载模块
命令行程序
使用NodeJS编写的东西,要么是一个包,要么是一个命令行程序,而前者最终也会用于开发后者。因此我们在部署代码时需要一些技巧,让用户觉得自己是在使用一个命令行程序。
如果我们已经把程序编写完成,把该程序放在/home/user/bin/node-echo.js,这样用户在任何位置都可以命令运行这个程序
node-echo Hello World
Linux
-
在Linux系统下,我们可以把JS文件当作shell脚本来运行,从而达到上述目的,具体步骤如下:
在shell脚本下,我们用#!来注释当前脚本使用的解析器,因此需要在node-echo.js文件注明
#! /usr/bin/env node
然后用下面的命令赋予node-echo.js权限
$ chmod +x /home/user/bin/node-echo.js
最后,我们在PATH环境变量中指定的某个目录下,例如在/usr/local/bin下边创建一个软链文件,文件名与我们希望使用的终端命令同名,命令如下:
$ sudo ln -s /home/user/bin/node-echo.js /usr/local/bin/node-echo
-
Windows
windows下需要我们通过.cmd解决问题。假设node-echo.js存放在C:Usersuserbin目录,并且该目录已经添加到PATH环境变量里了。接下来需要在该目录下新建一个名为node-echo.cmd的文件,文件内容如下:@node "C:\User\user\bin\node-echo.js" %*
-
工程目录
- test/ 总目录 -bin/ 命令代码 -public/ 文档代码 -lib/ -node_modules/ 第三方包 -tests/ 存放测试用例 package.json 原数据文件 README.md 说明文件
NPM
这个很简单,最多是用来下载第三方包,命令为npm install ###
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。