前端知识大汇总-npm
从今天开始,利用一些空闲时间开始整理以前自己接触到的一些前端后端知识,有些是自己使用过的,有的是网上搜罗的一些,也有是书上看到的。一些东西过一段时间不用,虽然有微许印象,但是总没有那种了然于胸的感觉,所以感觉写下来能好点,聊胜于无。
npm,简而言之,就是前端包管理器,类似于后端开发Java中的maven或者gradle,使前端人员开发分享和复用代码变得更加容易。
####安装npm
npm的安装比较简单,它直接依赖于node,node安装好之后就自带npm,版本可能不是最新的,我们可以通过以下命令安装最新版本的npm:
1 | npm install -g npm@latest |
这是一个标准的安装包的命令:install可以简写为-i,-g意思就是全局安装,npm@latest就是npm的最新版本,这种name@version的书写方式就是为了定位一个js包,这种声明方式就类似于maven中的groupId + artifactId + version定位一个唯一jar一样。我们可以通过npm去官方仓库或者第三方仓库(国内一般会使用淘宝源)下载我们项目中使用到的一些包,或者也可以把我们自己封装的一个包推送到npm仓库,供别人分享使用。
####package.json文件
这个文件是用来管理本地安装npm包,试想一下,我们在编写一个项目的时候,可能要使用到好多公共包,什么名字,什么版本,这样就需要一个文件来统一管理,同时如果以后要创建一个类似项目,那么我们可以直接把package.json文件拷贝一份,npm install一下,一个同样的项目骨架就出来了,十分方便:
- 描述项目需要哪些包;
- 指定需要包的版本;
- 同类项目构建可重复使用。
- 创建package.json
创建一个新目录,进入目录,输入npm init即可:
1 | mkdir test |
根据提示一步步走完会自动生成,如果觉得麻烦,可以使用npm init –yes跳过指示步骤直接生成,大致如下
1 | { |
一个标准的json文件:
- name:项目名称(字母小写)
- version:版本号
- description:描述信息
- main:入口文件
- scripts:支持脚本,一般我们可以在这里编写项目启动或者打包,test命令
- keywords:关键字
- author:作者
- license:协议
生成的文件中是没有任何npm包依赖的,如果要安装依赖,有以下两种方式:
- npm install -save name@version
- 在package.json中增加dependencies,value是个对象,然后填写key(name):value(version),最后npm install一下
主要要注意一下不同命令的区别:
npm install X:
- 会把X包安装到node_modules目录中
- 不会修改package.json
- 之后运行npm install命令时,不会自动安装X
npm install X –save:
- 会把X包安装到node_modules目录中
- 会在package.json的dependencies属性下添加X
- 之后运行npm install命令时,会自动安装X到node_modules目录中
- 之后运行npm install
–production或者注明NODE_ENV变量值为production时,会自动安装msbuild到node_modules目录中
npm install X –save-dev:
- 会把X包安装到node_modules目录中
- 会在package.json的devDependencies属性下添加X
- 之后运行npm install命令时,会自动安装X到node_modules目录中
- 之后运行npm install
–production或者注明NODE_ENV变量值为production时,不会自动安装X到node_modules目录中
- 使用npm安装的包
install好的包会默认在node_modules,我们要使用的话直接在文件中require一下就好了。