博客
关于我
npm包管理深度探索:从基础到进阶全面教程!
阅读量:794 次
发布时间:2023-02-17

本文共 12372 字,大约阅读时间需要 41 分钟。

npm??

npm??

??????????npm?Node Package Manager??Node???????????????????????????????Node.js???????????????????????????????????????npm?????????

???npm?

npm??????????????????????????????JavaScript??????????npm?Node.js??????Node.js?????????????????????CLI???????????????????????????????????

npm?????

npm?????????????????????

  • ?????npm???????????????????????????
  • ??????npm???????????????????????????????????
  • ?????npm???????????Semantic Versioning??????????????????????
  • ?????npm????????????????????
  • npm?????

    npm??????????????package.json ? package-lock.json?

    • package.json?????JSON??????????????????????????????npm?????????
    • package-lock.json???????????????????????????????????????

    npm???

    ??npm???????????????

  • ??????npm????????????????????
  • ????????????npm?????????????
  • npm?????

    npm????????

    npm??Node Package Manager????Node.js????????Node.js??Ryan Dahl?2009????????JavaScript??????????JavaScript????????????Node.js???????????????????????????????????????????????????

    Isaac Z. Schlueter?2010????npm?npm???????0.1.0??2010?1???????JavaScript??????????????????????npm????????Node.js?????????????

    npm?????

    ??Node.js????npm??????????2012??npm?????????20,000????2014??????????????100,????????????????Node.js???????????npm?????????????

    ??????npm?????????npm???????

    • ????????package.json???????????????
    • ????????????????Semantic Versioning??
    • ???????????????????

    npm??????

    • 2013??npm?????npm??????????????????????
    • 2015??npm 3.0??????npm shrinkwrap???????????????
    • 2016??npm??npm@next?????????????????????????????
    • 2018??npm 6.0???????????????????????????
    • 2020??npm 7.0????????????????Yarn????????????????

    npm??????????

    ??2023??npm???????????????????100???????????????Node.js??????????JavaScript????????????????????????????npm???????????????????????????

    npm????

    ???????????Node.js?JavaScript??????????????????????????npm?Node Package Manager?????????????????npm???????????????????

    ???????

    ?npm?????JavaScript?????????????????????????????npm???????????????????????????????????????????????????????????????????????????

    ??????

    npm?????????????????100???????????????Web??????????????????????????????????????????????????????????????

    ?????????

    npm????????????????????????????????npm???????npm???????????????????????JavaScript?????????????????????????????

    ???npm???????????

    • ??????npm??????????????????????????????????????????????????????????
    • ??????npm????????????????????
    • ?????npm??package.json????????????????????????????????npm???????????????????????

    ???

    ??JavaScript?????????????????npm?????????????

    • ?????npm?????????????????????????????????????????
    • ????npm????????????????????????????????????

    ??????

    npm????Node.js?????????????????????????

    • ????/?????CI/CD??npm???CI/CD????????????????
    • ???????npm?GitHub?GitLab?????????????????npm???????????
    • ??????npm?????????arn?PNPM?????????????????

    ????

    npm?????????????????????????????????????????????????????????????????????????

    ???npm????????JavaScript?????????????????????????????????????????????????JavaScript????????????????????Node.js?JavaScript??????npm???????????????JavaScript?????????????

    npm?????

    ????

    ?????npm?????????????????????????????????????????????npm?

    ??????

    npm?Node.js???????????????Node.js????????????npm?????????

    • Windows
    • macOS
    • Linux

    ??????????????????????????????????????

    ??Node.js

    npm?Node.js?????????????npm???????Node.js?????????????????

    • Windows???Node.js?????https://nodejs.org/?????????Node.js???????????????????????????Node.js?npm????????????
    • macOS??????Node.js??????????macOS????????????????????????
    • Linux??Linux???????????????Node.js?npm?????Ubuntu???????????
      sudo apt updatesudo apt install nodejs npm

    ????????????node -v?npm -v????????????

    ??????

    ????????????????????????Node.js?npm???????????????????????

    • Windows???????????????????????????????????Path?????Node.js?????????????
    • macOS/Linux????????~/.bashrc?~/.zshrc???????????????
      export PATH=$PATH:/usr/local/bin

    ??/usr/local/bin?Node.js??????????????source ~/.bashrc?source ~/.zshrc????????

    ????

    ????????????????Node.js?npm???????

    node -vnpm -v

    ?????????????????

    ??npm

    npm???Node.js???????????????????npm?????????????

    npm install -g npm@latest

    ??nvm??Node.js??

    ????????????????Node.js?????nvm?Node Version Manager?????????Node.js?nvm???Node.js????????????????????Node.js?

    npm???

    npm??Node.js????????????????Node.js??????????????npm??????????

    Node.js?npm???

    ??????????npm?Node.js?????????Node.js??npm?????????????????????????npm???????Node.js???npm?

    ????????

    ??????????????????????????????????????

    • Windows?Windows 7?????
    • macOS?macOS 10.13 High Sierra?????
    • Linux????Linux????Node.js?npm

    ????????????????Python 2.x???Node.js????????????

    ??Node.js?npm

    ????????????Node.js?npm??????

    • Windows???Node.js?????https://nodejs.org/????????????Node.js??????????????????????????
    • macOS??????Node.js??????????macOS?Node.js??????????.pkg?????????????????
    • Linux??????????Linux??????????????Node.js?npm?
      sudo apt updatesudo apt install nodejs npm

      ????????????node -v?npm -v????????????

    ??nvm????

    ????????????????Node.js?????nvm??????Node.js??????nvm??Node.js?npm????

    • ??nvm?????????????nvm?
      curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    • ??nvm???nvm???????????????????Node.js???
      nvm install 
      nvm use
      nvm uninstall

      ??<version>???????Node.js????

    ??npm

    ????npm???????????????npm??????????????????npm????????????????????????????????????npm?????

    ??npm??

    ????????????????????npm???????????????????????????????????npm??????????

    ??HTTP/HTTPS??

    ??????????HTTP?HTTPS??????????????

    npm config set proxy http://
    :
    @proxy-server:portnpm config set https-proxy http://
    :
    @proxy-server:port

    ?<username>, <password>, <proxy-server>, ?<port>????????????????????????

    ??????

    ???????????????npm???

    export HTTP_PROXY=http://
    :
    @proxy-server:portexport HTTPS_PROXY=http://
    :
    @proxy-server:port
    ??????

    ????????????????????????

    npm config delete proxynpm config delete https-proxy

    ???????

    ?????????????????????????cnpm??????????????????????????

    ???????

    ????????????????????

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

    ????????cnpm????????????npm???

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

    ????????cnpm??npm?????

    ???????

    ???????????????????????????

    • https://npmreg mirror.com/
    • https://npmmirror.com/

    ?????registry?????????????

    ???????

    ???????npm????????????????

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

    ??????

    ???npm??????????????????????????????????

    ??????

    ????????????npm??????

    npm set user 
    npm set email

    ?<username>?<email>?????npm???????????

    ??????

    ??????????????????????

    npm config list

    ??npm??

    npm?????????????????????????????????????????

    npm config get cache --jsonnpm config set cache 

    ?<path-to-cache-directory>????????????????

    ??????

    npm???????????????????????

    • prefix????????????
    • loglevel????????
    • progress???????????

    ?????npm config set <key> <value>??????????

    ??

    ????????????npm????????????????npm???????????????????????????????????????????????????????????????????npm?

    npm????

    ????

    ?????npm???????????????????????????????????????????????????????????????????npm??????????

    npm install

    npm install ????????????????????????????????npm???package.json??????????????????????

    • ???????-g?--global????????????????????????????????
    • ??????????-g??????????????node_modules???????????????
    • ???package.json???--save?-S?????????package.json?dependencies??
    • ??????????--save-dev?-D?????????package.json?devDependencies??

    npm uninstall

    ???????????????????npm uninstall?????????node_modules?????????package.json???????

    • ????????-g???????????
    • ???????????-g??????????????
    • ???package.json???--no-save??????????package.json?????

    npm update

    ?????????????????????????npm update?????????????????

    • ???????????????????????????
    • ?????????????????

    npm outdated

    ?????????????????????????npm outdated???????????????????????

    npm list

    npm list ? npm ls ???????????????????????????

    • ???????????-g???????????
    • ?????????????????????

    npm init

    ???????????????npm init???????package.json???????????????????????????????????

    • ???????-y?????????????????package.json?

    npm run

    ?package.json?????????????????npm run????????????

    • ????????????????????
    • ??????????????start??????????????
      npm start

    ?????

    ???????????????????????npm?Node Package Manager???Node.js???????????????????????????????????????????????npm???????

    ?????

    ??????npm??????????????????????

    • ???????npm install <package-name>???????????node_modules?????????????package.json???
    • ??????????-g??????????????node_modules???????????????
    • ???package.json???--save????????package.json?dependencies??
    • ??????????--save-dev????????package.json?devDependencies??

    ?????

    ???????????????????????????????????????bug?

    • ??????????????npm update?????????????????????
    • ????????????????????????????

    ?????

    ?????????????????????????????npm?????????

    • ????????npm uninstall <package-name>?????node_modules?????????????package.json?
    • ??????????????????-g??????
    • ???package.json???--no-save??????????package.json?????

    ?????

    ????????????????????????????????????

    • ?????????npm list?npm ls????????????????????????
    • ?????????npm outdated????????????????????????????

    ????????

    npm??????????????????????????

    • ???????=???????????
    • ???????~?^???????????

    npm?????

    ?????????????????????????npm??????????????????????????????????????????????????npm?????????????

    npm???????

    npm????????Node.js???????????????package.json????scripts??????????????Node.js?????????????????????????????

    ????npm??

    ?package.json?????????????npm???

    {  "scripts": {    "start": "node server.js",    "build": "webpack --mode production",    "test": "jest"  }}

    ??????????????????start?build ? test?????????????????

    npm run startnpm run buildnpm run test

    ??npm??

    ?????npm??????????????????

    npm run 

    ?????????start?????????

    npm run start

    npm???????

    ???????npm???????????

    • ???????????npm????????????????????????

      {  "scripts": {    "start": "node server.js --port 3000"  }}

      ???

      {  "scripts": {    "prestart": "export PORT=3000",    "start": "node server.js"  }}
    • ?????npm?????????????????????????????????????

      {  "scripts": {    "preinstall": "echo 'Running preinstall hook'",    "postinstall": "echo 'Running postinstall hook'"  }}

      ????npm install????preinstall??????????install??????postinstall???

    • ?????????????????????????????????????&??????????????&&???????

      npm run script1 & npm run script2

      ???

      npm run script1 && npm run script2
    • ????????????????????????????npm?????????????????npx?????????????

      {  "scripts": {    "cleanup": "npx rimraf dist"  }}

      ???rimraf??????????Node.js???npx?????????rimraf??????????

    ??npm????

    npm???????????pre?post????init?install?prepublish?publish????????????????????????????????

    {  "scripts": {    "prepublish": "echo 'Running prepublish tasks...'",    "publish": "echo 'Running publish tasks...'"  }}

    ??????npm?????prepublish????????????publish??????

    ??

    npm???????????????????????????????????????????????????????????????????????????????????????npm???????????????????????

    npm????

    ???????????????npm?????workspaces??????????????????????????????????????????????????????????????????npm??????????????????????????

    ???????

    npm?????????????????????????????????????????????????package.json???????????????package-lock.json?npm-shrinkwrap.json????????????????

    ??npm????

    ???npm????????????????package.json???????workspaces??????????????????

    {  "name": "my-monorepo",  "workspaces": ["packages/*"]}

    ???????packages/*?????????packages?????????????????????????

    ?????????

    ???????????????npm????????????node_modules???????????node_modules?????????????????????????????????????

    ??npm????

    ?????????????npm??????????

    • ??????????????????????????????????????????package.json??????workspaces???
    • ?????????????????????????????????
      npm install

      ??????????package.json??????????????????node_modules??

    • ??????????npm run???????????????????????????????????????
      npm run script-name --workspaces

      ?????????????????????

      npm run build --workspaces
    • ??????????????????npm??????????????????????npm???????????package.json???????????????
    • ??????????????????????????????npm publish???npm??????????????????????????

    ???????

    ??npm???????????

    • ?????????????????????????????
    • ???????????????????????????
    • ?????????????????????
    • ????????????????????

    ???????

    ??npm?????????????????????

    • ??????????????????????????????
    • ????????????????????????????npm??????????????
    • ?????????????????????????????????

    ??

    npm?????????????????????????????????????????????????????????????????????????????????????????????????????????????????

    npm?????

    ??????????Hooks?????Events??????????????

    转载地址:http://vqjfk.baihongyu.com/

    你可能感兴趣的文章
    NPOI之Excel——合并单元格、设置样式、输入公式
    查看>>
    NPOI初级教程
    查看>>
    NPOI利用多任务模式分批写入多个Excel
    查看>>
    NPOI在Excel中插入图片
    查看>>
    NPOI将某个程序段耗时插入Excel
    查看>>
    NPOI格式设置
    查看>>
    NPOI设置单元格格式
    查看>>
    Npp删除选中行的Macro录制方式
    查看>>
    NR,NF,FNR
    查看>>
    nrf24l01+arduino
    查看>>
    nrf开发笔记一开发软件
    查看>>
    nrm —— 快速切换 NPM 源 (附带测速功能)
    查看>>
    nrm报错 [ERR_INVALID_ARG_TYPE]
    查看>>
    NS3 IP首部校验和
    查看>>
    NSDateFormatter的替代方法
    查看>>
    NSError 的使用方法
    查看>>
    NSGA-Ⅲ源代码
    查看>>
    nsis 安装脚本示例(转)
    查看>>
    NSJSON的用法(oc系统自带的解析方法)
    查看>>
    nslookup 的基本知识与命令详解
    查看>>