1、绝对路径:qui支持以(/)或者盘符开头(f:)的绝对路径
、相对路径:支持以(./)开头的相对路径,两种路径在模块之间建立了强耦合关系,一旦某个模块文件的存放位置需要变更,使用该模块的其他模块的代码也需要跟着调整,变得牵动一发全身,不建议使用
3、第三种路径:类似于foo/bar,按照以下规则进行解析,直到找到模块
二、包概念JS模块的基本单位是单个的JS文件,但复杂些的模块往往由多个子模块组成。为了便于管理和使用,我们可以把由多个子模块组成的大模块称作为包,并把所有子模块放在同一个目录里。
在组成一个包的所有子模块中,需要有一个入口模块,入口模块的导出对象被作为包的导出对象。
其中home定义了一个包,包含三个字模块,main作为模块入口文件
//mainjsconsthead=qui("./head")constbody=qui("./body")exports.cate=function(name){turn{name:name,head:head.cate(),body:body.cate()}}
一般情况下使用路径:qui("/node/home/hello/main.js")可以获取入口文件,但是为了使包看起来更像是一个单独的模块,可以有如下方法:
qui("/home/lib/cat")qui("/home/lib/cat/index")
三、功能目录/home/user/workspace/node-echo/#工程目录
bin/#存放命令行相关代码node-echodoc/#存放文档lib/#存放API相关代码echo.jsnode_modules/#存放三方包argv/tests/#存放测试用例package.json#元数据文件README.md#说明文件四、NPMnpm是随同nodejs一同安装的包管理工具,能解决nodejs代码部署上的很多问题。常见场景:
1、允许用户从npm服务器下载别人编写好的第三方包到本地使用、允许用户从npm服务器下载并安装别人编写的命令行程序到本地使用3、允许用户将自己编写的包或命令行程序上传到npm服务器供别人使用
使用npm下载和发布代码时都会接触到版本号。npm使用语义版本号来管理代码。
语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新
如果只是修复bug,需要更新z位如果是新增了功能,但向下兼容,需要更新Y位如果有重大变动,向下不兼容,需要更新X位