美文网首页
node入门(二)

node入门(二)

作者: 萘小蒽 | 来源:发表于2018-06-26 10:29 被阅读12次

    前端配置

    1.node_modules目录

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

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

    往往我们npm下载时的模块都在这个目录里


    2.包(package)

    编译的模块或第三方模块,都有不同的依赖关系,往往复杂的模块又有不同的子模块组成。为了方便管理和修改操作,我们会把所有子模块放在同一个目录里。

    在组成一个包的所有子模块中,需要一个入口模块,入口模块的导出对象被作为包的到处对象。例如以下目录结构。

    -/home/user/lib/
      -cat/
         head.js
         body.js
         main.js
    

    其中car目录定义了一个包,其中包含了三个子模块。main.js作为入口模块,其中内容如下:

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

    tips:index.js
    以上,require('/home/user/lib/cat/main')能达到目的。
    当我们把main.js模块的文件名替换成index.js,加载模块式可以使用模块所在的目录的路径替代模块文件路径。例如以下两条语句等价:

    //两个都是引入的index模块
    var cat  = require ('home/user/lib/cat');
    var cat = require('home/user/lib/cat/index');
    

    经过以上的操作,只需要传包路径给require函数,整个目录被当作单个模块使用,更有编译体验感。

    3.package.json

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

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

    其中packge.json内容如下。

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

    这样就可以使用require('/home/user/lib/cat')的方式加载模块。node会根据包目录下的package.json招到入口模块所在位置。

    相关文章

      网友评论

          本文标题:node入门(二)

          本文链接:https://www.haomeiwen.com/subject/elepyftx.html