随着nodejs流行,npm伴随nodejs逐步成长起来,安装nodejs以后就自动安装了npm。
npm 是 nodejs 的包管理和分发工具。它 可以让 javascript 开发者能够更加轻松的共享代码和共用代码片段,并且通过 npm 管理你分享的代码也很方便快捷和简单。
npm install npm -g
npm -v
npm 提供了两种包的安装形式:局部安装和全局安装。你可以通过你的项目使用情况选择如何安装。如果你的项目依赖于某个包,那么建议将改包安装到局部。其他其他条件下,比如你要在命令行工具中使用这个包,可选择在全局安装。
全局安装示例:
npm install @angular/cli -g
一般这样安装都是以工具,命令行形存在
这样使用
ng new demo
这个ng就是@angular/cli提供的一个命令行命令
全局安装的包默认都存在C:\Users\Administrator\AppData\Roaming\npm下,这是windows版的,其他版本不懂。
局部安装示例:
dependencies
npm install jquery --save
devDependencies
npm install lodash --save-dev
这是两种局部包安装
一个node package常用有两种依赖,一种是dependencies一种是devDependencies,其中前者依赖的项该是正常运行该包时所需要的依赖项,而后者则是开发的时候需要的依赖项。
上面说有2种的形式很官方,简单说一下区别,dependencies是开发和生产运行需要的包依赖,例如前端jqeury, angular,lodash,Bootstrap等这样的开发需要的库和框架,devDependencies是一些开发辅助包,例如前端的webpack,gulp,bower,等这样的工具。
--save是自动帮你安装包添加依赖关系到 package.json的dependencies下
--save-dev是自动帮你安装包添加依赖关系到 package.json的devDependencies下
除了上面2个比较常用的外,还可以简写:
简写 | 命令 | 说明 |
---|---|---|
-S | --save | 添加依赖关系到dependencies下 |
-D | --save-dev | 添加依赖关系到devDependencies下 |
-O | --save-optional | 添加依赖关系到optionalDependencies下 |
optionalDependencies一般用的不多。可选的依赖
npm install jquery --save
npm install jquery@latest --save
npm install jquery@2.1.1 --save
npm install jquery@">=2.0.0 <2.2.0" --save
因为有些包没有添加到npm里面,但在github上面,我们可以使用以下方式来安装
指定安装某个版本
npm install git+ssh://git@github.com:npm/npm.git#v1.0.27
直接安装
npm install git+https://isaacs@github.com/npm/npm.git
指定安装某个版本
npm install git://github.com/npm/npm.git#v1.0.27
删除全局包
npm uninstall -g @angular/cli
删除局部包
npm uninstall jquery
怎么安装就怎么删除,不用跟版本号。
上面说了怎么安装删除,现在说一个npm管理依赖的文件package.json。
创建一个文件夹,在当前文件夹里打开命令行,输入npm init
然后就会出现以下一些提示要你填写:
name:填写包的名字,默认是你这个文件夹的名字。
如果你这个东西将来要做成一个npm包发布(后面说怎么发布一个npm包),就需要注意了。你需要去npm上找一下,有没有同名的包,npm search 包名,如果没有,恭喜你可以注册。如果存在,那你只能自己改名了。没办法,先到先得。
version:包的版本,默认是1.0.0
description:用一句话描述你的包是干嘛用的,随便写点啥也可以不写直接回车了
entry point:入口文件,默认是index.js,就是引入这个包就可以运行的。
index.js
需要些一行这个代码
module.exports=require('./lib') 这个就是你需要用包地址
test command:测试命令。一般都用不上跳过了
git repository:这个是git仓库地址,如果你的包是先放到github上或者其他git仓库里,这时候你的文件夹里面会存在一个隐藏的.git目录,npm会读到这个目录作为这一项的默认值。如果没有的话,直接回车继续。
keyword:这个是一个重点,这个关系到有多少人会搜到你的npm包。尽量使用贴切的关键字作为这个包的索引。里面是一个字符串数组
author:作者
license:开源协议
然后它就会问你Are you ok?
回车就好了。
然后你当前文件都会生成一个package.json文件。
然后我们就可以安装依赖了,参照上面npm依赖安装
engines:依赖node和npm版本
"engines": {
"node": ">= 6.9.0",
"npm": ">= 3.0.0"
}
如果小于这个版本就好抛错。
做开源的东西,尽量加上这个,node更新很快,每个版本功能都有些差异。
scripts:npm运行命令
默认生成的
"scripts": {
test: “echo \”Error: no test specified\" && exit 1"
}
我们可以在命令行运行npm run test
接着就会输出Error: no test specified
目前比较火的webpack都是使用npm来管理命令行,然后运行npm run xxx
在你要发布的项目文件夹里面打开命令输入npm publish
如果版本未修改发布会报错,你需要去修改一下version。
每次修改都需要npm publish,记得修改version
有发布就有删除,删除好像有个限制,如果大于24小时,需要联系npm管理员删除。
npm unpublish 包名
就完了
npm install 安装模块
npm uninstall 卸载模块
npm update 更新模块
npm outdated 检查模块是否已经过时
npm ls 查看安装的模块
npm init 在项目中引导创建一个package.json文件
npm help 查看某条命令的详细帮助
npm root 查看包的安装路径
npm config 管理npm的配置路径
npm cache 管理模块的缓存
npm start 启动模块
npm stop 停止模块
npm restart 重新启动模块
npm test 测试模块
npm version 查看模块版本
npm view 查看模块的注册信息
npm adduser 用户登录
npm publish 发布模块
npm access 在发布的包上设置访问级别
npm cache verify
注意: if npm version is < 5 then use npm cache clean
npm list
该命令会显示所有模块:(安装的)模块,子模块以及子模块的子模块等。可以限制输出的模块层级:
npm list --depth=0
该命令会为模块在全局目录下创建一个符号链接。可以通过下面的命令查看模块引用:
npm list -g --depth=0
一般版本是1.0.0(大.中.小)会匹配最近的小版本依赖包,比如1.2.3会匹配所有1.2.x版本,但是不包括1.3.0
^会匹配最新的中版本依赖包,比如^1.2.3会匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0
“jquery”: “2.0.1” 等于当前版本
“jquery”: “>=1.0.2 <2.1.2” 大于等于version 小于version
“jquery”: “>1.0.2 <=2.3.4” 大于version 小于等于version
“jquery”: “<2.3.4” 小于version
“jquery”: “<=2.3.4” 小于等于version
“jquery”: “>2.3.4” 大于version
“jquery”: “>=2.3.4” 大于等于version
“jquery”: “<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0” 三选一version
“jquery”: “~2.3.4” ~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0
“jquery”: “^2.3.4” ^1.2.3会匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0
常用就这些,一般就用~和^或者直接写版本
以上就是npm常用一些小知识。来自:https://github.com/jiayisheji/blog/issues/5
下面通过三种方法来搭建公司私有npm仓库,每种方式都有自己的优势。启动并配置服务、设置注册地址、登录cnpm、包上传到私有仓库、查看预览包、通过verdaccio搭建....
webpack:解析js文件,无法解析的文件需要借助loader,npm插件发布(vue&webpack&单页面):npm init =>package.json,创建.vue文件 =>插件界面及功能,index.js =>入口文件
NPM是随同NodeJS一起安装的包管理和分发工具,它很方便让JavaScript开发者下载、安装、上传以及管理已经安装的包。这篇文章整理NPM常用的一些命令
直接通过&&连接多条命令,在npm run start的时候,发现只停留在第一个命令执行监听,后面的命令都没有执行。只能通过打开多个窗口分别执行多条命令,那么有没有办法实现一条npm命令执行多条监听呢?
npm和bower太像了,就像一对孪生兄弟…… npm的文件是package.json,包安装的目录是node_modules。 bower的文件是bower.json,包安装的目录是bower_components。使用命令也基本一致
这篇文章主要介绍了vue项目中Npm run build 根据环境传递参数方法来打包不同域名,使用npm run build --xxx,根据传递参数xxx来判定不同的环境,给出不同的域名配置,具体内容详情大家参考下:config文件夹下dev.env.js中修改代码、prod.env.js中修改代码 HOST为截取到的参数
使用node.js和npm,在安装模块的时候报错npm WARN saveError ENOENT: no such file or directory, open ...的解决办法。这个原因就是因为项目没有进行初始化,缺少package.json文件造成的。需要package.json才能npm install。 可以npm init初始化生成一个package.json。
抽空写了一个 textarea,打算发布到 npm 的时候却遇到了问题,之前用 vue-cli 2.x 的时候,打包配置项非常透明,可以很容易的修改,但升级到 vue-cli 3.x 之后,反而一脸懵逼
如果您曾在 Node 或 JavaScript 前端开发中投入过时间和精力,那么您就知道 npm 中有数以十万计的模块可供您选择。挑选模块可能很难,但您只需要一些方法点来解决它。当您正在为如何抉择浪费时间,或者甚至不知道从哪里开始时,请使用本指南来帮助您。
关于 npm run eject 报错的问题,昨天新开React的项目, 刚刚一上手就碰到问题,解决方法(前提你有git).出错的原因:应该是git没有安装好,或者代码没有提交上git
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!