npm实用知识_命令合集

更新日期: 2020-02-03阅读: 1.7k标签: npm

前言

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

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

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

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


命令合集

强烈建议最好不要使用 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


链接: https://www.fly63.com/article/detial/8490

在5分钟内搭建企业内部私有npm仓库

下面通过三种方法来搭建公司私有npm仓库,每种方式都有自己的优势。启动并配置服务、设置注册地址、登录cnpm、包上传到私有仓库、查看预览包、通过verdaccio搭建....

使用webpack开发npm插件

webpack:解析js文件,无法解析的文件需要借助loader,npm插件发布(vue&webpack&单页面):npm init =>package.json,创建.vue文件 =>插件界面及功能,index.js =>入口文件

npm命令大全_整理NPM常用命令

NPM是随同NodeJS一起安装的包管理和分发工具,它很方便让JavaScript开发者下载、安装、上传以及管理已经安装的包。这篇文章整理NPM常用的一些命令

npm 执行多个命令_如何用npm同时执行多条监听命令

直接通过&&连接多条命令,在npm run start的时候,发现只停留在第一个命令执行监听,后面的命令都没有执行。只能通过打开多个窗口分别执行多条命令,那么有没有办法实现一条npm命令执行多条监听呢?

npm和bower的关系和区别

npm和bower太像了,就像一对孪生兄弟…… npm的文件是package.json,包安装的目录是node_modules。 bower的文件是bower.json,包安装的目录是bower_components。使用命令也基本一致

npm run build根据不同参数打包不同环境url

这篇文章主要介绍了vue项目中Npm run build 根据环境传递参数方法来打包不同域名,使用npm run build --xxx,根据传递参数xxx来判定不同的环境,给出不同的域名配置,具体内容详情大家参考下:config文件夹下dev.env.js中修改代码、prod.env.js中修改代码 HOST为截取到的参数

npm安装模块时报错:no such file or directory

使用node.js和npm,在安装模块的时候报错npm WARN saveError ENOENT: no such file or directory, open ...的解决办法。这个原因就是因为项目没有进行初始化,缺少package.json文件造成的。需要package.json才能npm install。 可以npm init初始化生成一个package.json。

vue-cli 3.x 开发插件并发布到 npm

抽空写了一个 textarea,打算发布到 npm 的时候却遇到了问题,之前用 vue-cli 2.x 的时候,打包配置项非常透明,可以很容易的修改,但升级到 vue-cli 3.x 之后,反而一脸懵逼

前端npm 安装包,精选大全集合

如果您曾在 Node 或 JavaScript 前端开发中投入过时间和精力,那么您就知道 npm 中有数以十万计的模块可供您选择。挑选模块可能很难,但您只需要一些方法点来解决它。当您正在为如何抉择浪费时间,或者甚至不知道从哪里开始时,请使用本指南来帮助您。

关于 npm run eject 报错的问题

关于 npm run eject 报错的问题,昨天新开React的项目, 刚刚一上手就碰到问题,解决方法(前提你有git).出错的原因:应该是git没有安装好,或者代码没有提交上git

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!