NPM使用
1. npm起步
1-1 npm简介
npm
的全称是 Node Package Manager
,是 NodeJS
标准的包管理和分发工具
新版的 Nodejs
已经集成了 npm
,在安装 Node.js
时 npm
会连带被安装,它很方便让 JavaScript
开发者下载、安装、上传以及管理已经安装的包
# 查看 npm 的版本
npm -v
# 查看各个命令的简单用法
npm -l
# 查看 npm 命令列表
npm help
# 查看 npm 的配置
npm config list -l
如果安装的是旧版本的 npm
,可以通过 npm
命令来升级
# 安装最新版本的 npm
npm install npm@latest -g
# 安装最新的官方测试版 npm
npm install npm@next -g
1-2 npm初始化
npm init
用来初始化生成一个新的 package.json
文件,它会向用户提问一系列问题,如果觉得不用修改默认配置可以直接回车默认跳过
- 尾缀带
-f
(代表force
)、-y
(代表yes
),则跳过提问阶段直接生成一个新的package.json
文件 - 不带尾缀的话,默认有提问阶段
# 初始化package.json文件
D:\My Study\08-Node.js\01-npm使用\01-npm初始化>npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help init` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
# 模块名称(必须是英文)
package name: (01-npm初始化) npm-init
# 模块版本
version: (1.0.0)
# 模块描述
description: npm初始化
# 模块的入口文件 默认index.js
entry point: (index.js)
# 项目启动时执行的命令
test command:
# 将该模块放入github仓库中
git repository:
# 模块关键字
keywords:
# 模块作者
author: jsx
# 模块发布时需要的证书
license: (ISC)
# package.json 内容
About to write to D:\My Study\08-Node.js\01-npm使用\01-npm初始化\package.json:
{
"name": "npm-init",
"version": "1.0.0",
"description": "npm初始化",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "jsx",
"license": "ISC"
}
# 确定配置是否创建
Is this OK? (yes) yes
// package.json
{
"name": "npm-init",
"version": "1.0.0",
"description": "npm初始化",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "jsx",
"license": "ISC"
}
1-3 默认配置
在初始化 npm init
时,每次都都会默认询问需要配置的值,可以通过 npm set
对需要配置项的值进行预设
npm set
用来设置环境变量,等于为npm init
设置了默认值
npm set key=value [key=value...]
npm set key value [key=val...]
# 预设作者姓名
npm set init-author-name <Your name>
# 预设作者邮箱
npm set init-author-email <Your email>
# 预设作者网站主页url
npm set init-author-url <Your url>
# 预设作者项目许可证
npm set init-license <Your license>
# 预设项目版本号
npm set init-version <Your version>
上面的指令等于为 npm init
设置了默认值,以后执行 npm init
的时候,package.json
的作者姓名、邮件、主页、许可证就会自动写入预设的值。这些信息会存放在用户主目录的 ~/.npmrc
文件,使得用户不用每个项目都输入
1-4 修改配置
如果某个项目有不同的设置,可以针对该项目运行 npm config
修改默认配置
根据
npm set
设置的属性进行修改,如果以-
连接属性名则需要保持一致性以免造成预设混乱
npm config set key=value [key=value...]
npm config set key value [key=val...]
npm config set init-author-email <Your email>
npm config set init-author-name <Your name>
npm config set init-author-url <Your url>
npm config set init-license <Your license>
npm config set init-version <Your version>
1-5 查看配置
当需要查看自己预设的值时可以通过 npm config list
查看当前配置
-l
则显示所有默认值配置--json
以json
格式显示设置
npm config list
npm config list -l
2. package.json指南
2-1 文件解构
package.json
文件是项目的清单,它是用于工具的配置中心,也是 npm
和 yarn
存储所有已安装软件包的名称和版本的地方
package.json
必须遵守JSON
格式,否则,尝试以编程的方式访问其属性的程序则无法读取它
{
"name": "test-project",
"version": "1.0.0",
"description": "A Vue.js project",
"main": "src/main.js",
"private": true,
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"unit": "jest --config test/unit/jest.conf.js --coverage",
"test": "npm run unit",
"lint": "eslint --ext .js,.vue src test/unit",
"build": "node build/build.js"
},
"dependencies": {
"vue": "^2.5.2"
},
"devDependencies": {
"autoprefixer": "^7.1.2",
"babel-core": "^6.22.1",
"babel-eslint": "^8.2.1",
"babel-helper-vue-jsx-merge-props": "^2.0.3",
"babel-jest": "^21.0.2",
"babel-loader": "^7.1.1",
"babel-plugin-dynamic-import-node": "^1.2.0",
"url-loader": "^0.5.8",
"vue-jest": "^1.0.2",
"vue-loader": "^13.3.0",
"vue-style-loader": "^3.0.1",
"vue-template-compiler": "^2.5.2",
"webpack": "^3.6.0",
"webpack-bundle-analyzer": "^2.9.0",
"webpack-dev-server": "^2.9.1",
<