代码的组织和部署

来源:互联网 发布:红旗linux证书 编辑:程序博客网 时间:2024/05/19 19:43

1. NodeJS定义了一个特殊的node_modules目录用于存放模块。例如某个模块的路径在/home/user/,在该模块中使用require('foo/bar')方式加载模块时,则NodeJS依次尝试使用以下路径。

 /home/user/node_modules/foo/bar /home/node_modules/foo/bar /node_modules/foo/bar

2. 我们可以把由多个子模块组成的大模块称做,并把所有子模块放在同一个目录里。在组成一个包的所有子模块中,需要有一个入口模块,入口模块的导出对象被作为包的导出对象。例如以下的main.js

var head = require('./head');var body = require('./body');exports.create = function (name) {    return {        name: name,        head: head.create(),        body: body.create()    };};

如果想自定义入口模块的文件名和存放位置,就需要在包目录下包含一个package.json文件,并在其中指定入口模块的路径。上例中的cat模块可以重构如下。

- /home/user/lib/    - cat/        + doc/        - lib/            head.js            body.js            main.js   //模块入口        + tests/        package.json

其中package.json内容如下。

{    "name": "cat",    "main": "./lib/main.js"}

如此一来,就同样可以使用require('/home/user/lib/cat')的方式加载模块。NodeJS会根据包目录下的package.json找到入口模块所在位置。

3. 标准工程目录
- /home/user/workspace/node-echo/   # 工程目录    - bin/                          # 存放命令行相关代码        node-echo    + doc/                          # 存放文档    - lib/                          # 存放API相关代码        echo.js    - node_modules/                 # 存放三方包        + argv/    + tests/                        # 存放测试用例    package.json                    # 元数据文件    README.md                       # 说明文件

4. NPM

$ npm install argv...argv@0.0.2 node_modules\argv

下载好之后,argv包就放在了工程目录下的node_modules目录中,因此在代码中只需要通过require('argv')的方式就好,无需指定三方包路径。

npm init 这个命令的作用就是帮我们互动式地生成一份最简单的 package.json 文件,init 是 initialize 的意思,初始化。


$ npm install express utility --save

这次的安装命令多了个 --save 参数,这个参数的作用,就是会在你安装依赖的同时,自动把这些依赖写入 package.json。命令执行完成之后,查看 package.json,会发现多了一个 dependencies 字段,




0 0