node.js

128 阅读2分钟

node.js

学习地址:nodejs.cn/en/learn

npm(node pachage manager)

概念: node.js的包管理工具
命令: 基于命令行的工具

  1. 初始化一个新的npm项目,创建package.json文件【项目/包 描述文件】:npm init
  2. 安装npm包:npm install XXX 最新版本 npm install xxx@2.6.0 指定版本

    安装开发时候的依赖【webpage vite rollup】,不被打包成为项目
    npm install xxx --save-d 简写 npm install xxx -D

    "devDependencies": {
        "webpack" : "^4.44.2",  
        "webpack-cli" : "^3.3.12"
      },
    

    安装正式时候的依赖【vue,VueX,vue-router,md5,elements-plus】,打包成为项目
    npm install xxx --save 简写 npm install xxx

    "dependencies": {
      "md5": "^2.3.0",
      "vue":"^3.5.11"
    },
    

    编写插件/npm包的人员使用:对等依赖防,止安装重复插件

    "dependencies": {
      "vite-plugn-xm": "^2.3.0",//使用了vite在下面吗必须有vite插件
      "vue":"^3.5.11"
    },
    "peerDependencies": {
        "vite": "^2.7.13"
    }
    

    npm install xxx发生了什么?
    juejin.cn/post/726111…

    1. 安装的依赖都存放的node_modules文件夹中
    2. 安装排序,.bin > @xxx > abcd
    3. 扁平化的方式安装【广度优先的算法下载依赖】
    4. 遍历依赖树时,npm先处理根目录所有的依赖,然后逐层处理依赖下的依赖
      【 例如vue依赖很多包,这些包都存在vue文件夹中,npm会逐层处理,当然先处理和vue平级的依赖 】
    5. 在处理每个依赖时npm会检测该依赖的版本号是否符合依赖树中其他依赖的版本要求,如果不符合,尝试安装其他版本的依赖 0570bf4581f74a9790bb86567b889e68~tplv-k3u1fbpfcp-zoom-in-crop-mark_1512_0_0_0.webp
  3. 卸载npm包:npm uninstall xxx
  4. 获取node.js的所有信息:npm config list
  5. 获取镜像源:npm get registry
  6. 设置镜像源:npm config set registry http://https://registry.npmmirror.com/
  7. 查找全局安装的可执行文件:npm ls -g

安装小满工具:npm i xmzs -g
查看版本号:mmp -V
查看当前的镜像源:mmp current
切换镜像源:mmp use
添加镜像源:mmp add

npx和npm的区别: npx执行node_modules的任何命令:执行查找顺序:本地-全局-下载

发布npm包到npmjs:

会查看package.json包,name和版本不能再npm网站注册过。

  1. 注册npm账号:npm adduser
  2. 登录npm:npm login
  3. 发布npm:npm publish
搭建npm私服:
  1. 安装私服:npm install verdaccio -g

  2. 查看私服的命令:verdaccio --help

    3962339-0f634d765af39604.png

    • 启动私服:verdaccio
    • 更改端口:verdaccio --listen 5000
    • 更改配置文件:verdaccio --config [path]
    • 切换npm下载源:npm set registry http://localhost:4873/

npm私服发布步骤:
  1. 在cmd启动私服verdaccio
  2. 打开一个终端【否则会关闭私服】
    创建用户:npm adduser --registry http://localhost:4873/
  3. 在要发布的项目终端登录
    登录用户:npm login --registry http://localhost:4873/
    发布项目:npm publish --registry http://localhost:4873/
模块化:

遵循CommonJS和esm【前端使用的import和export】

  • CommonJS: