zoukankan      html  css  js  c++  java
  • 前端工程化

    什么是npm

    npm的全称Node Package Manager,npm原先只是作为nodejs的包管理工具,然而随着前端社区的发展,如今npm不仅是nodejs的包管理工具,还是前端js的包管理工具。

    更新npm

    安装过nodejs都知道,nodejs的安装会顺便安装上npm,所以这里不讲如何安装npm。通过命令npm update -g npm可以进行npm的更新

    墙的问题

    因为墙的原因,在国内使用npm会比较慢,这时候可以使用淘宝的npm镜像

    (方法一) 每次使用npm的时候指定镜像,npm install -g npm --registry=https://registry.npm.taobao.org

    (方法二) 安装cnpm,npm install -g cnpm --registry=https://registry.npm.taobao.org,之后就可以使用cnpm替代npm来进行包的安装,更新和卸载

    (方法三) 设置全局镜像源npm config set registry https://registry.npm.taobao.org

    常用命令

    npm init初始化bower生成package.json
    npm install package-name安装,如npm install express,可以带上--save参数,这样package.json中会写入该包的信息
    npm uninstall package-name卸载
    npm update更新
    npm list查看已安装的包列表

    使用npm shrinkwrap来管理包的依赖

    在项目开发中我们往往需要安装和升级相应的包,然而我们在开发的过程中使用的包版本和开发完成后进行部署的时候(npm install),包的版本可能会存在差异,这种差异可能就会导致项目运行报错。为了避免这种错误的发生,我们可以使用npm shrinkwrap来解决这个问题。

    在开发过程中,引入一个新包的流程如下

    • 执行npm install --save package-name@package-version
    • 进行实际开发
    • 执行npm shrinkwrap
    • 将代码,package.json和npm-shrinkwrap.json提交到版本仓库

    在开发过程中,更新一个包的流程如下

    • 执行npm outdated获取项目所有依赖的更新信息
    • 执行npm install --save package-name@package-version
    • 进行实际开发和功能测试
    • 执行npm shrinkwrap
    • 将代码,package.json和npm-shrinkwrap.json提交到版本仓库

    在开发过程中,删除一个包的流程如下

    • 执行npm uninstall --save package-name
    • 进行测试
    • 执行npm shrinkwrap
    • 将代码,package.json和npm-shrinkwrap.json提交到版本仓库

    创建私有的npm镜像

    • 安装sinopianpm install -g sinopia
    • 启动sinopia,执行sinopia

    接着在浏览器地址栏中输入http://localhost:4873/

    • 创建新用户npm adduser --registry http://localhost:4873
    • 发布包npm publish
      在提交包之前需要到~/.config/sinopia/config.yaml配置文件中删除proxy: npmjs这行配置项,这样才能将包提交到本地私有源
    • 安装包,安装包之前需要将镜像源指向私有的源,如npm config set registry http://localhost:4873
  • 相关阅读:
    有向无环图描述表达式 (a+b)*((a+b)/a)至少需要的顶点数目
    图的深度优先是 树的先序遍历的推广。 广度优先
    leader failed to send out heartbeat on time; took too long, leader is overloaded likely from slow disk
    优化 并发
    最终一致和强一致性缓存实践
    Go语言逆向初探 原创 半个大西瓜 看雪学院 2021-06-23
    中通快递的云原生改造之路 施尧 InfoQ 2021-06-23
    Stable Minimum Storage Merging by Symmetric Comparisons Pok-Son Kim1? and Arne Kutzner2
    A Method for the Construction of Minimum-Redundancy Codes
    滴滴基于Binlog的采集架构与实践 原创 滴滴技术团队 滴滴技术 2021-06-22
  • 原文地址:https://www.cnblogs.com/helbing/p/5432150.html
Copyright © 2011-2022 走看看