NPM学习

NPM

认识npm

npm(全称Node Package Manager,即node包管理器)
是Node.js默认的、以JS编写的软件包管理器
npm来分享和使用代码已成前端的标配
官网:https://www.npmjs.com
npm被全球超过1100万开发人员所依赖
拥有超过一百万个软件包,是世界上最大的软件注册表
cmd.exe里运行命令

npm中文网

包:https://www.npmjs.com/
文档:https://www.npmjs.cn/

安装NPM工具

npm是Node.js默认的软件包管理系统
安装完毕node后,会默认安装好npm
npm本身也是基于Node.js开发软件
下载Node:http://nodejs.cn

node -v
npm -v
npm install npm -g // 全局安装
npm install jquery //在工程目录下安装

国外网站下载速度慢,使用国内阿里的镜像加快速度
从配置文件里注册表

npm config get registry

设置配置文件注册表是阿里镜像:??

npm config set registry https://registry.npm.taobao.org/ -g
npm config set disturl https://registry.npm.taobao.org/ -g

使用nrm工具切换淘宝源

npx nrm use taobao

设置默认的地址:

npm config set registry https://registry.npmjs.org/

定义npm是默认配置,cnpm是淘宝镜像

npm install -g cnpm --registry-https://registry.npm.taobao.org 

NPM基本使用

npm -v 

通过查看版本,看npm 是否安装成功

npm install <module name>

使用npm 命令安装模块

npm install <module name>

-g 可以直接在命令行里使用

npm list -g

查看所有全局安装的模块

npm list vue 

查看某个模块的版本号

npm -g install npm@5.9.1

(@后跟版本号)这样我们就可以更新npm版本

npm install moduleName --save

#-save在package文件的dependencies节点写入依赖

npm install modelueName --save-dev

#-save-dev在package文件夹的devDependencies节点写入依赖dependencies:运行时的依赖,发布后,及生产环境下还需要用的模块
devDependencies:开发时的依赖。里面的模块时开发时用的,发布时用不到它,比如项目中使用的guip,压缩css、js的模块。这些模块在我们的项目部署后是不需要的。

npm update <module name> 

更新包到最新版本

npm uninstall <module name>

卸载包

package.json文件属性详解

生成package.json文件

npm init --yes //忽略选项
npm init //一步一步设置

写入自定义hello命令

{
  "name": "packagename",
  "version": "1.0.1",
  "description": "this is description",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "hello": "node -v"
  },
  "repository": {
    "type": "git",
    "url": "git"
  },
  "author": "fxr",
  "license": "ISC"
}

执行自定义命令

npm run hello

安装jquery

npm install jquery -save

package-lock.json文件里开发依赖

{
  "name": "packagename",
  "version": "1.0.1",
  "lockfileVersion": 2,
  "requires": true,
  "packages": {
    "": {
      "name": "packagename",
      "version": "1.0.1",
      "license": "ISC",
      "dependencies": {
        "jquery": "^3.6.0"
      }
    },
    "node_modules/jquery": {
      "version": "3.6.0",
      "resolved": "https://registry.npmmirror.com/jquery/download/jquery-3.6.0.tgz",
      "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw=="
    }
  },
  "dependencies": {
    "jquery": {
      "version": "3.6.0",
      "resolved": "https://registry.npmmirror.com/jquery/download/jquery-3.6.0.tgz",
      "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw=="
    }
  }
}

版本号配置

3.2.1 ,固定版本3
^3.x.x,更新最后俩位。
~3.2.x,更新最后一位。

实际开发中,module目录下无需传递,删除module目录下下载的包。另一台机器npm install 能够自动下载。不麻烦,并且减少传输大小。再也不用担心因为容量大,需要传输几个小时。

{
  //包名
  "name": "packagename",  
  
   //包的版本号
  "version": "1.0.1",
  
   //包的描述
  "description": "this is description",
  
    //字段指定了程序的主入口文件,require('moduleName')就会加载这个文件。这个字段的默认值是模块根目录下面的Index.js
  "main": "index.js",  

    // 命令可用 npm run test/...运行
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "hello": "node -v"
  },

   //包代码仓库的类型,可以git或svn,git可在Github上
  "repository": {
    "type": "git",
    "url": "git"
  },
   //作者
  "author": "fxr",
  
  "license": "ISC",
  
  //依赖包列表。如果依赖包没有安装,npm会自动将依赖包安装在node_module目录下
  "dependencies": { 
    "jquery": "^3.6.0"
  },
  "devDependencies": {
    "bootstrap": "^5.1.3"
  }
}

homepage-包的官网url
contributors-包的其他贡献者姓名
keywords-关键字
package.json文件中版本号的说明,安装的时候代表不同的涵义:
“5.0.3” 表示安装指定的5.0.3版本
“~5.0.3” 表示安装5.0.x中最新的版本
“^5.0.3” 表示安装5.x.x中最新的版本

npm常用命令:
常看所有命令

npm help

查看某条命令的详细帮助

npm help install

在package.json目录下使用,可现在本地安装当前命令行程序,可用于发布前的本地测试

npm install . -g

可把当前目录下node_modules子目录里的模块更新到最新版本。

npm update <package>

可把全局安装的对应命令行程序更新到最新版本。

npm update <package> -g

清空npm本地缓存,用户对付使用相同版本发布新版本代码的人。

npm cash clear

撤销自己发布过的某个版本代码

npm unpublish <package>@<version>

NPM安装包的使用

想要运行代码,安装Code Runner插件
工程下新建foo.js

module.exports=100

工程下新建index.js

const $ = require('jquery')

let num = require("./foo.js");
console.log(num)

运行index.js文件

node index.js

暴露module.exports = …

module.exports = function(args){
    let sum =0;
    for(let i=0;i<args.length;i++){
        sum +=i;
    }
    return sum;
}

引入代码require(…)

const $ = require('jquery')

let num = require("./foo.js");
console.log(num([2,3,4]));

module.exports.sum = function(args){
    let sum = 0;
    for(let i=0;i<args.length;i++){
        sum += args[i];
    }
    return sum;
}

module.exports.num = 100;
let sum = require("./foo.js");
console.log(sum.sum([1,4,5]));
console.log(sum.num);

练习通过npm安装包来解决ES6语法兼容性问题

练习:ES6兼容性解决
ES6语法在老版本浏览器会报错。
兼容表:http://kangax.github.io/compat-table/es6/
IE10+、Chrome、FireFox、移动端、NodeJS现在都支持ES6
兼容低版本浏览器方式:
在线转换(缺点:加大页面渲染时间,响应蛮,半天刷新不过来)
提前编译(推荐方式,不影响浏览器渲染)

//ES6
var fn = (v=>console.log(v))
转换成
//ES5
“use strict”
var fn = function fn(v){
return console.log(v);
};
(工具有bable,jsx,traceur,es6-shim等。)

到静态资源库中版本复制地址

前端静态资源库:https://cdn.baomitu.com/

引入babel-core

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="https://lib.baomitu.com/babel-core/5.8.38/browser.js"></script>
    </head>
    <body>
        <script type="text/babel">
            const name = "学习"
            console.log(name);
            
        </script>
    </body>
</html>

1.使用NPM全局安装babel-cli包。
2.找一个目录,用npm来初始化一个项目,用来搭建我们的babel环境。( npm init )或(npm init -y)。
3.babel提供的一个编译工具babel-node,也可以执行我们的js代码(babel-node index.js)
4.在项目目录下新建.babelrc文件(这是babel的配置文件)
{
“presents”:[“es2015”,“stage-2”],//设置转码规则
“plugins”:[“transform-runtime”]//设置插件
}
5.需要转换成es2015,安装我们需要的库:

npm install babel-core babel-preset-es2015 babel-plugin-transform-runtime babel-preset-stage-2 -save-dev

6.打开我们babel项目下的package.json文件,如下修改

"scripts":{"build":"babel src -w -d lib"}

7.编译整个src目录并将其输出到lib目录。这里的src指的是需要转换的目录,lib指的是输出的内容的存放目录,-w其实是-watch的意思,就是监听文件,实时编译输出。

8.新建src目录和lib目录,记得一定要建,不然会报错,然后启动babel工具
9.命令行输入npm run build

npm install --save-dev  babel-cli -g

查看babel版本

babel -V

NPM的竞品yarn的安装和使用

Yarn是什么?
yarn是由Facebook、Google、Exponent和Tilde联合推出了一个新的JS包管理工具,正如官方文档中写的,Yarn是为了弥补npm的一些缺陷而出现的。因为NPM5以下会出现下面的问题:
_ npm install的时候巨慢,特别是新的项目拉下来要等半天,删除node_modules,重新install的时候依旧如此。
_同一个项目,多人开发时,由于安装的版本不一致出现bug
官网:www.yarnpkg.com

_ 下载node.js,使用npm安装

npm install -g yarn
查看版本:yarn --version

_ 安装node.js下载yarn的安装程序:
提供一个.msi文件,在运行时将引导您在Windows上安装Yarn
_Yarn淘宝源安装,分别复制粘贴以下代码行到黑窗口运行即可

yarn config set registry https://registry.npm.taobao.org -g

yarn config set sass_binary_site http://cdn.npm/taobao.org/dist/node-sass -g

初始化工程,生成package.json

yarn init
{
  "name": "prp",
  "version": "1.0.0",
  "description": "this is d",
  "main": "index.js",
  "author": "fxr",
  "license": "MIT",
}

添加包

yarn add <module name>
{
  "name": "prp",
  "version": "1.0.0",
  "description": "this is d",
  "main": "index.js",
  "author": "fxr",
  "license": "MIT",
  "dependencies": {
    "jquery": "^3.6.0"
  }
}
yarn remove jquery
yarn add jquery --dev

yarn官网

https://yarnpkg.com/

yarn的优点
速度快,安装版本统一,更简洁的输出,多注册来源处理,更好的语义化

npm install/ yarn
npm install react --save/yarn add react
npm uninstall react --save/yarn remove react
npm install react --save-dev/yarn add react --dev
npm update --save/yarn upgrade
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值