代码的部署与组织
要添砖先搭框架,现代楼房遵循的原理,我们编写程序也是一样的。
- 模块路径解析规则
- 内置模块直接调用,例如: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 ###