zoukankan      html  css  js  c++  java
  • npm和cnpm

    初始npm

    一、npm简介:

    npm全称为Node Packag Manage,是一个基于Node.js的包管理器,也是整个Dode.js最流行、支持的第三方模块最多的包管理器。

    npm的初衷:JavaScript开发人员更统一分享和重用代码

    npm的使用场景:

        允许用户获取第三方包并使用。

         允许用户将自己编写的包或者命令行程序进行发布分享。

    npm版本查询:npm  -v

    npm安装:

      1.安装nodejs

        由于新版的nodejs已经集成了npm,所以可直接通过输入npm -v来测试是否成功安装

      2.使用npm命令来升级npm:npm install npm -g

    二、npm的工作原理:

      1.包和模块

        1.什么是包(package)?

          包的描述一个文件或者一个目录。一个包的配置通常由以下构成:

          一个文件夹包含一个package.json配置文件

          包含(含有package.json文件的文件夹)的 Gzip压缩文件。

          解析gzip的url

          为注册表添加<name>@<version>的url 信息

          注意的是即使你从来没有在注册中心发布你的公共包,你可能仍然可以得到很多所有这些package, 使用npm的好处:

          如果你只是计划想写增加一个节点或/。

          如果你安装它也希望在其他地方分成一个tarball后进行包装

           Git url的形式:

           git:/ /github.com/user/project.git # commit-ish
           git + ssh:/ / user@hostname:project.git # commit-ish
           git +http://user@hostname项目/ blah.git # commit-ish
           git +https://user@hostname项目/ blah.git # commit-ish
           可以捡出commit-ish的一个git任何标签和master分支、安全哈希算法。

    什么是模块(module)?

           模板是通过配置文件中的一个dom节点进行包含一个或多个包。通常一般由包和配置文件以及相关模块程序构成完成一个或多个业务功能操作。

           一个模块可以在node . js 程序中装满任何的require()任何。 以下是所有事物加载模块的例子 :

          一个文件夹package.json文件包含一个main字段。

          一个文件夹index.js文件。

          一个JavaScript文件。

    3.npm的包和模块的关系:

          一般来说在js程序中使用require加载它们的模块在节点中进行配置npm包,一个模块不一定是一个包。

          例如,一些cli包, js程序节点中只包含一个可执行的 命令行界面,不提供main字段。 那么这些包不是模块。

          几乎所有npm包(至少,那些节点计划)包含许多模块在他们(因为每个文件加载require()是一个模块)。

          几乎所有的npm包都关联着多个模块,因为每个文件都使用require()加载一个模块。

          从module加载文件中的上下文node节点。如:var req = require('request')。我们可能会说,“request模块赋值给req这个变量”。

          4.npm的生态系统:

          package.json文件定义的是包。

          node_modules文件夹是存储模块的地方。便于js查找模块。

          例如:

          如果创建一个node_modules/foo.js文件,通过var f=require('foo.js')进行加载模块。因为它没有package.json文件所以foo.js不是一个包。

          如果没有创建index.js包或者package.json文件"main"字段,即使是在安装node_modules,因为它没有require()所以它不是一个模块

        

  • 相关阅读:
    Ozon Tech Challenge 2020 (Div.1 + Div.2, Rated, T-shirts + prizes!)D(交互,DFS)
    【PAT甲级】1122 Hamiltonian Cycle (25分)
    Codeforces Round #622 (Div. 2)D(离散化,状压DP)
    Codeforces Round #625 (Div. 1, based on Technocup 2020 Final Round)B(反向建图,BFS最短路)
    Codeforces Round #625 (Div. 1, based on Technocup 2020 Final Round)C(线段树,扫描线)
    【PAT甲级】1121 Damn Single (25分)
    【PAT甲级】1120 Friend Numbers (20分)(SET遍历)
    【PAT甲级】1119 Pre- and Post-order Traversals (30分)(已知先序后序输出是否二叉树唯一并输出中序遍历)
    【PAT甲级】1118 Birds in Forest (25分)(并查集)
    LOJ2181 排序
  • 原文地址:https://www.cnblogs.com/lyhzyy6-12/p/10967795.html
Copyright © 2011-2022 走看看