• npm实用知识_命令合集


    前言

    npm 作为前端一大利器,那必须是要好好掌握,在平时的开发中,用的最多的应该就是 npm install,不过,这么强大的工具,作用肯定不止如此。

    现将自己所知道的有关 npm 的知识给整理出来,大都是平时用的很多的,整合出来不仅是方便查找,更重要的是身为社会主义的接班人,少先队员所应具备的良好品质也在时刻提醒我,要为社会作出应有的贡献。写到这,我不禁低头一看,胸口的红领巾好像更红了,太阳公公好像也在向我微笑点头。

    在开始前还要再说一下,合集会持续更新,因为知识总是不断在补充的。但也不会频繁更新,一般会攒个大再放,持续更新,建议收藏,文章会放在我的 blog 文集里,blog 里面还是会快速更新的啦。

    再多嘴一句,windows 的同学可以试试 windows 的命令行神器 cmder,这可以减少很多使用 windows 原生命令行时奇怪的错误。

    vi设计http://www.maiqicn.com 办公资源网站大全https://www.wode007.com

    命令合集

    强烈建议最好不要使用 cnpm,会有各种奇怪的 bug,相对 cnpm,给 npm 设置 registry 是一个好选择,使用 nrm 是更好的选择

    npm init 创建基础 package.json

    # 会用命令行交互式完成创建
    npm init
    # 直接略过交互式,使用 defaultValue 创建 package.json
    npm init -y

    node 运行时内存溢出

    在运行内存比较小的电脑上可能你会碰到内存溢出导致程序被 kill 的场景,使用 --max-old-space-size 或许可以解决这个问题。

    {
      "scripts": {
        "start": "node --max-old-space-size=4076 index.js"
      }
    }

    当然,如果说 package.json 中 scripts 中的命令很多,你就需要在每个地方增加该指令,已经有 issue 提到了该问题,或许在 node 之后的版本会解决这个问题。

    Add max-old-space-size to npmrc

    再者,我们不仅可以在 scripts 中添加,还可以在执行命令中添加,如下,一个命令行类库的 bin 目录下的执行文件。

    #!/usr/bin/env node --max-old-space-size=4096
    
    const cli = require("../src").default;
    cli.run();

    npm publish 发布 npm 包

    这里只列出发布的步骤,具体怎么写 npm 包可以到网上搜搜相关内容,各路大佬已经整理了不少,博主就不在此班门弄斧了。

    需要注意的是,我们需要先把 registry 切换到 npm 起始源,而不能使用 taobao 的,taobao 是同步了 npm 包的国区资源,实际资源还是来自 npm,所以需要先发布到 npm 再等 taobao 自动同步(顺便可以刷一波下载量)。

    # 切换 registry 至 npm
    nrm use npm
    
    # 第一次使用 npm publish
    # 如果你是第一次使用 npm publish,你需要添加账号
    npm adduser
    
    # 非第一次使用 npm publish
    # 登陆账户,这一步其实也可以不用做,直接看 whoami 即可
    npm login
    
    # 查看当前账户
    npm whoami
    # 发布
    npm publish

    npm view 查看某一库详细信息

    对打了 tag 的库还是挺方便的,可以查看对应 tag 名称,如果需要安装某一个具体 tag 的库,可以使用 npm install ${packageName}@${tag}

    npm view @vue/cli
    
    # 查看 view 之后,安装指定 tag
    npm install -D @vue/cli@next

    npm root 获取当前项目的 node_modules 路径

    可以在命令行类库中使用,会向上查找 node_modules 的路径,并返回绝对路径。

    但是也是有 bug 的,如果你在空文件夹下使用 npm root,会直接以当前路径加上 node_modules 返回,即使你的目录下并没有 node_modules 文件夹

    npm root

    举个例子,如果在很深的路径中,需要使用当前项目依赖的 node_modules/.bin 中的指令,我们有两个办法找到目录

    const moduleRootPath = path.join(process.cwd(), "node_modules");
    const moduleRootPath = execa.sync("npm", ["root"]);

    npm list 查看全局安装的模块

    npm list -g --depth=0

    删除全局安装的所有模块

    慎用,除非你知道你在做什么,否则不要用

    rm -rf /usr/local/lib/node_modules

    npm cache 清除 npm 缓存

    报错 npm resource busy or locked 时候,或者其他莫名报错的时候,可以试试看。

    # force 表强制清除缓存
    npm cache clean --force

    好库推荐

    排名不分先后,会按照博主的记忆顺序来记录。其中有命令行工具,还有好用的三方库推荐,大抵不会有主流三大框架的三方库(你们懂得肯定比我多),会以 node 类库为主。

    yarn 依赖处理工具

    这么好用的东西不说太多了,大部分人应该都用着,对标 npm,可以更好的处理项目依赖(但是也发现有情况是 npm 可以安装成功,yarn 安装反而报错)。

    甩上命令,一个字就是冲。

    npm install yarn -g
    
    # 安装 devdep 依赖
    yarn add -D @types/node
    # 安装 dep 依赖
    yarn add axios
    # 安装 peerDep 依赖
    # peerDep 依赖意思是,如果你安装了我,那你最要也安装 XXX
    yarn add -P vue
    # 全局安装依赖
    yarn global add @vue/cli

    mirror-config-china 自动配置国区镜像

    在下载某些库的时候发现即使配置了 registry 的时候,下载还是异常缓慢,甚至半天都不动一下?你可能需要这个。

    这个库会自动配置很多第三方库(例如 electron)的地址到国区镜像,虽然也可以在需要的时候手动配置,但是,有一键操作那还要啥自行车!下载速度嗖嗖嗖。

    npm install -g mirror-config-china

    nrm 管理 registry

    当你经常需要切换 registry 源(比如你需要 npm publish 代码,这时候就需要切换到 npm 起始源),这个工具可以帮忙。

    npm install -g nrm
    
    # 添加 npm registry 至 nrm
    nrm add npm http://registry.npmjs.org
    # 添加 taobao registry 至 nrm
    nrm add taobao https://registry.npm.taobao.org
    # 使用 taobao 的 registry
    nrm use taobao
    # 使用 npm 的 registry
    nrm use npm

    http-server 快起静态服务

    可以很方便的在本地起一个静态服务,当然还有很多参数,这里就不多做演示,只做个抛砖引玉,具体可以查看以下文档。

    http-server

    npm install -g http-server

    举个小例子,当你兴高采烈开发完一个项目打包至 dist,想要看看效果如何,你就可以进入 dist 文件夹,然后启动 http-server 服务,他会默认以 index.html 作为入口启动静态服务,并且还会监听文件改变。

    cd dist
    http-server

    nvm 管理多版本 node

    虽然可能不多见,但是你还是会碰到需要在同一台电脑上运行不同版本的 node 这种问题,这个库可以解决。

    # 查看当前使用的 node 版本
    nvm current
    # 安装 node 指定版本
    nvm install 12.14.0
    # 切换 node 版本
    nvm use 12.14.0
    # 使用 12.14.0 版本的 node 运行 index.js
    nvm run 12.14.0 index.js
  • 相关阅读:
    (转)测试经验交流
    关于软件质量和软件测试的一点点看法 (转)
    提取Chrome插件为crx文件
    [转]用星际快速入门PHP面向对象编程
    函数式编程js学习的进阶
    asp.net程序就是IIS的插件
    文档单一化、版本化
    NuGet
    Linux服务器程序编程的几个坎
    webform也是一种mvc
  • 原文地址:https://www.cnblogs.com/xiaonian8/p/13764784.html
Copyright © 2020-2023  润新知