zoukankan      html  css  js  c++  java
  • Node.js知识点整理之----npm包管理工具

    在Node.js中,可以自己编写或从网上下载模块文件:

    • 后缀名为.js的JavaScrip文件
    • 后缀名为.json的JSON文件
    • 后缀名为.node的经过编译后的二进制模块文件

    使用require()引入模块文件时需要指定文件的路径及文件名:

    • ‘./’代表当前目录来指定相对路径
    • '/'代表绝对路径

    自定义模块

    使用 exports对象,暴露模块内的变量、函数 或 对象

    var myMsg = 'hello';
    var func = function(){
     //...   
    }
    exports.msg = myMsg;
    exports.func = func;
    //也可以使用module.exports.XXX

    自定义模块为类

    使用 module.exports 的书写方法。

    var name='';
    var age = 0;
    var foo = function(){
        //...
    }
    
    foo.prototype.name = name;
    foo.prototype.age = age;
    
    foo.prototype.getName = function(){
        //...
    }
    
    foo.prototype.setName = function(){
        //...
    }
    
    module.exports = foo;

    为模块类定义变量或函数

    当把模块定义为类时,可以为该类定义类变量或类函数

    var foo = function(){
        //...
    }
    
    foo.staticName = '';
    
    foo.staticFunc = function(){
        //...
    }
    
    module.exports = foo;

    组织管理模块

    如果在require函数中参数只使用文件名,但不指定路径,则Node.js将该文件视为 node_modules目录下的文件。

    使用目录管理模块

    • 将目录名指定为模块名:在应用程序根目录下创建一个node_modules子目录,在其中创建一个目录,并在其中放入一个index.js文件
    • 在应用程序根目录下的node_modules子目录的foo子目录下创建一个package.json文件,并在其中使用如下所示的代码创建模块名与主文件
    {
        "name":"foo",
        "main":"./lib/foo.js"
    }

    从全局目录中加载模块

    如果在操作系统的环境变量中设置了NODE_PATH变量,并将变量值设置为一个有效的磁盘目录,在require中只指定模块名,而没有指定路径时,并且Node.js从其他路径中找不到需要加载的模块文件,Node.js将从NODE_PATH变量值所指向的磁盘目录中寻找并加载模块。

    模块对象属性

    module.id

    当前模块的ID。

    在默认情况下,主模块的ID属性值为“.”,其他模块的ID属性值为该模块文件的绝对路径。

    module.filename

    当前模块文件的文件名。

    module.loaded

    属性值为布尔值,当为false时,表示模块尚未加载完毕,为true时,表示 属块加载完毕。

    module.parent

    属性值为当前模块的父模块对象。

    module.children

    属性值为一个数组,存放了当前模块的所有子模块对象。

    Node.js中的包

    一个包事实上是一个目录,其他包含了用于对包进行描述的JSON格式的package.json文件。

    包中的内容

    • 在包的根目录中存放package.json文件
    • 在bin子目录中存放二进制文件
    • 在lib子目录中存放JavsScript文件
    • 在doc子目录中存放对包 或 包的使用方法的说明文件
    • 在test子目录中存放单元测试文件

    package.json中的内容:

    • name:包名
    • preferglobal:是否支持全局安装
    • description:包说明
    • version:版本号
    • author:作者信息数组
    • maintainers:包维护者信息数组
    • bugs:bug提交地址
    • licenses:许可证数组
    • repository:仓库托管地址数组
    • keywords:关键字数组
    • dependencies:本包所依赖的包

    npm包管理工具

    //搜索并查看forever包信息
    npm search forever
    
    //查看forever包所用package.json中的信息
    npm view forever
    
    //下载forever
    npm install forever
    
    //全局安装包
    npm install -g forever
    
    //查看Node.js的全局包的安装路径
    npm root -g
    
    //修改Node.js的全局包的安装路径
    npm config set prefix "d:
    ode"
    
    //查看命令行提示窗口当前目录下所安装的所有包
    npm list
    
    //查看Node.js的全局包的安装路径下安装的所有包
    npm list -g
    
    //卸载当前目录下安装的某个包
    npm uninstall <包名>
    
    //卸载Node.js全局包的安装路径下安装的某个包
    npm uninstall -g <包名>
    
    //更新当前目录下安装的某个包
    npm update <包名>
    
    //更新Node.js的全局包的安装路径下安装的某个包
    npm update -g <包名>
    
    //更新当前目录下安装的所有名
    npm update
    
    //更新Node.js的全局包的安装路径下安装的所有包
    npm update -g
  • 相关阅读:
    IOS中常见的Operation —— NSOperation
    动态语言,别再说不
    CoreImage的使用及常见滤镜工具(一)
    【iOS】用Layer创建一个三维模型以及拖动
    前端基础-html、css
    mysql数据库—索引
    mysql数据库—用户管理、pymysql模块
    mysql数据库—函数、数据备份、流程控制
    mysql数据库基本操作2
    mysql数据库—事务、存储过程
  • 原文地址:https://www.cnblogs.com/adhehe/p/9695743.html
Copyright © 2011-2022 走看看