美文网首页饥人谷技术博客
NPM安装使用,以及package.json解释

NPM安装使用,以及package.json解释

作者: 取个帅气的名字真好 | 来源:发表于2017-12-02 22:39 被阅读428次

    NPM 是什么?

    • 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
    • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
    • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

    1、下载安装Node.js

    $ npm -v  //检查版本,出现版本提示表示成功
    3.10.10
    

    2、版本检查更新

    $ sudo npm install npm -g
    

    3、安装模块

    $ npm install 模块名
    

    以下实例,使用 npm 命令安装Node.js markdown转HTML模块markdown-it:

    $ npm install markdown-it //从NPM中下载模块名为markdown-it
    
    安装模块.png

    安装好之后,markdown-it包就放在了工程目录下的 node_modules 目录中,在代码中只需要通require('markdown-it') 的方式就好。

    var MarkdownIt = require('markdown-it')
    

    当然每个模块的使用方法都有一点点区别,如markdown-it是这样的

    markdown-it包使用.png

    4、全局安装、本地安装

    npm 的包安装分为本地安装、全局安装两种,从命令行来看,差别只是有没有-g而已,比如

    npm install markdown-it      //本地安装
    npm install markdown-it -g   //全局安装
    

    本地安装

    1、 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成node_modules 目录。
    2、可以通过 require() 来引入本地安装的包。

    全局安装

    1、 将安装包放在 /usr/local 下或者你 node 的安装目录。
    2、 可以直接在命令行里使用。

    提高安装速度

    运行
    $ npm config set registry https://registry.npm.taobao.org/
    ---------------------------------------------------------
    恢复原样
    $ npm config delete registry
    

    5、查看安装路径

    $ npm root //查看当前包的安装路径
    $ npm root -g //查看全局的包的安装路径
    
    路径.png

    6、查看安装信息

    $ npm list -g 
    
    所有全局安装的模块.png

    7、使用 package.json

    命令行方式创建package.json

    $ npm init //生成一个package.json
    

    这个命令采用互动方式,要求用户回答一些问题,然后在当前目录生成一个基本的package.json文件。所有问题之中,只有项目名称(name)和项目版本(version)是必填的,其他都是选填的。

    7.1、单独安装xxx模块(npm install)

    $ npm install xxx --save //将该模块写入dependencies属性
    $ npm install xxx --save-dev //将该模块写入devDependencies属性。
    

    7.2、卸载本地包(npm uninstall)

    $ npm uninstall xxx //你可以将node_modules目录下的某个依赖包移除
    $ npm uninstall --save xxx //从dependencies(依赖)中移除
    $ npm uninstall --save-dev xxx //从devDependencies中移除
    

    7.3、完整的package.json

    {
      "name": "Hello World",  //name属性就是你的模块名称
      "version": "0.0.1", //version必须可以被npm依赖的一个node-semver模块解析
      "author": "张三",  //"author"是一个码农
      "description": "第一个node.js程序", //一个描述,方便别人了解你的模块作用,搜索的时候也有用。
      "mian":"index.js", //main属性指定了程序的主入口文件.
      "keywords":["node.js","javascript"],  //一个字符串数组,方便别人搜索到本模块
      "repository": { //指定一个代码存放地址,对想要为你的项目贡献代码的人有帮助。
        "type": "git",
        "url": "https://path/to/url"
      },
      "license":"MIT", //你应该为你的模块制定一个协议,让用户知道他们有何权限来使用你的模块,以及使用该模块有哪些限制,如BSD-3-Clause 或 MIT之类的协议
      "engines": {"node": "0.10.x"},
      "bugs":{ //填写一个bug提交地址或者一个邮箱,被你的模块坑到的人可以通过这里吐槽
        "url":"https://github.com/luoshushu",
        "email":"bug@example.com"
        }, 
      "contributors":[{"name":"李四","email":"lisi@example.com"}], // "contributors"是一个码农数组。
      "scripts": { //指定了运行脚本命令的npm命令行缩写。比如:输入npm run start时,所要执行的命令是node index.js。
        "start": "node index.js"
      },
      "dependencies": { //指定了项目运行所依赖的模块
        "express": "latest",
        "mongoose": "~3.8.3",
        "handlebars-runtime": "~1.0.12",
        "express3-handlebars": "~0.5.0",
        "MD5": "~1.2.0"
      },
      "devDependencies": { //指定项目开发所需要的模块
        "bower": "~1.2.8",
        "grunt": "~0.4.1",
        "grunt-contrib-concat": "~0.3.0",
        "grunt-contrib-jshint": "~0.7.2",
        "grunt-contrib-uglify": "~0.2.7",
        "grunt-contrib-clean": "~0.5.0",
        "browserify": "2.36.1",
        "grunt-browserify": "~1.3.0",
      }
    }
    
    

    ps:package.json具体解释请看阮一峰的教程

    7.4、.gitignore 文件

    作用:

    在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改 .gitignore 文件的方法。

    这个文件每一行保存了一个匹配的规则例如:

    # 此为注释 – 将被 Git 忽略
    *.a       # 忽略所有 .a 结尾的文件
    !lib.a    # 但 lib.a 除外
    /TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
    build/    # 忽略 build/ 目录下的所有文件
    doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
    
    node_modules被忽略.png

    上图:

    1、上传某个项目到Github,在当前文件下新建文件.gitgnore,内容为node_modules。作用:不会把node_modules文件夹一起上传。
    2、反之从Github上下载到本地,需要下载node_modules文件,直接在命令行输入:npm install 即可正常使用。

    最后注意:中文命名就是个万年深坑。


    参考:

    相关文章

      网友评论

        本文标题:NPM安装使用,以及package.json解释

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