1.安装node(windows可以安装nvm-windows用来管理node)
查看本地安装的node和npm版本,npm默认是node的包管理工具
安装的包都在node_modules文件夹内,node_modules文件夹内有.cache文件夹记录缓存内容
2.package.json文件解释
{
"name": "cloud-polymerize",
"version": "8.1.0",
"private": true,
"main": "lib/index.min.js",
"module": "lib/index.esm.js",
"types": "lib/index.d.ts",
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
},
"repository": {
"type": "git",
"url": "https://github.com/jd-opensource/micro-app.git"
},
"keywords": [
"webcomponents",
"micro-frontend",
"microapp"
],
"files": [
"es",
"lib",
"polyfill",
"plugins",
"typings"
],
"author": "cangdu",
"license": "MIT",
"bugs": {
"url": "https://github.com/jd-opensource/micro-app/issues"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged",
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
},
"lint-staged": {
"**/*.{js,ts}": [
"yarn lint"
]
},
"dependencies": {
"throttle-debounce": "^1.1.0",
"vue": "~2.6.14",
},
"devDependencies": {
"uglifyjs-webpack-plugin": "^2.2.0",
"vue-template-compiler": "~2.6.14",
"webpack": "^4.46.0"
}
}
3.package.json版本号
^2.6.3 保留x,升级 y和z
~2.6.3 保留x和y,升级z
2.6.3 保留x,y,z
>=2.6.3 大于2.6.3的任何版本
4.npm指令
npm init -y 初始化package.json文件
npm install 和npm uninstall 安装和卸载
npm update vue
npm install vue@x.y.x 指定版本号
-g === --global 全局安装
--save === -S 安装到dependencies中
--save-dev === -D 安装到devDependencies
npm list 查看本地安装的包
npm list -g 查看全局安装的包
npm list vue 查看本地vue安装的版本
npm view vue 查看vue包的信息 基本等价于info
npm info vue 查看vue包的信息
第一步:配置npm仓库地址
npm config set <key> <value> 设置一个npm配置项的值
npm config set registry url 设置npm 镜像地址
npm config get <key> 得到一个npm配置项的值
npm config delete <key> 删除一个npm配置项的值
第二步:登录npm仓库的注册用户
npm login 登录npm仓库
npm logout 登出npm仓库
npm whoami 查看当前npm登录用户
第三步:发布
npm publish npm unpublish 发布包到npm仓库 在npm仓库删除指定的包
npm cache clean 清除npm缓存
npm run scriptsName 运行script指令
5.运行scripts指令
运行serve指令时,可以动态传参
npm run serve -- arg1 arg2
process.argv是个数组,process.argv.slice(2) 可以获取参数
process.argv === ['vue-cli-service','serve',arg1,arg2]按下图所示
-- 是必需的,它告诉 npm 将后面的参数传递给脚本而不是作为 npm 命令的选项。 arg之间空格隔开,代表多个参数
scripts中命令语句
key:value,value是可以执行的脚本命令
在
package.json 文件中的 scripts 部分,你可以定义一系列脚本命令,这些命令可以通过 npm run <script-name> 来执行。scripts 中的执行语句可以包含多种形式,以下是一些常见的形式和示例:
1. 直接执行 Node.js 脚本
json复制代码
"scripts": {
"start": "node index.js"
}
这里,start 是脚本名称,node index.js 是实际要运行的命令。
2. 使用 npm 包提供的命令行工具
json复制代码
"scripts": {
"build": "vue-cli-service build"
}
在这个例子中,vue-cli-service build 是 Vue CLI 提供的构建命令。
3. 串行执行多个命令
使用 && 来连接多个命令,前一个命令执行成功才会执行后面的命令。
json复制代码
"scripts": {
"deploy": "npm run build && scp -r dist/* user@example.com:/path/to/server"
}
这里,deploy 脚本首先运行 npm run build,如果成功,则执行 scp 命令将构建好的文件部署到服务器。
4. 并行执行多个命令
使用 & 来同时执行多个命令(注意:在 Windows 上可能不支持这种方式,Windows 用户可以使用 npm-run-all 或类似的库来实现并行执行)。
json复制代码
"scripts": {
"dev": "nodemon index.js & webpack -w"
}
在这个例子中,nodemon index.js 和 webpack -w 会同时运行。但请注意,由于跨平台兼容性问题,这种方式可能并不总是可行。
5. 使用环境变量
你可以在脚本中设置和使用环境变量。例如,使用 cross-env(一个跨平台的设置环境变量的库)来设置环境变量:
json复制代码
"scripts": {
"start": "cross-env NODE_ENV=production node index.js"
}
在这个例子中,cross-env 用于设置 NODE_ENV 环境变量为 production,然后执行 node index.js。
6. 引用 package.json 中的字段
通过 npm_package_ 前缀,npm 脚本可以访问 package.json 中的字段。例如:
json复制代码
"scripts": {
"view": "echo $npm_package_name"
}
在这个例子中,脚本会打印出 package.json 中的 name 字段的值。
7. 使用自定义变量
你可以在 package.json 的 config 字段中定义自定义变量,并在脚本中引用它们:
json复制代码
"config": {
"port": "3000"
},
"scripts": {
"start": "node index.js --port=$npm_package_config_port"
}
在这个例子中,port 是一个自定义变量,其值在脚本中通过 $npm_package_config_port 引用。
8. 调用其他 npm 脚本
在 package.json 中,虽然你不能直接“调用”另一个 npm 脚本,但 npm 提供了一些生命周期钩子,允许你在执行某个脚本之前或之后自动运行其他脚本。这些钩子包括 pre<script>, post<script>, 以及 <script>-script(后者较少使用)。
以下是如何利用这些钩子来“间接调用”其他 npm 脚本的示例:
使用 pre 和 post 钩子
npm 支持在每个脚本名称前添加 pre 或 post 前缀来定义要在该脚本执行之前或之后运行的钩子脚本。
json复制代码
"scripts": {
"prebuild": "echo 'Running pre-build tasks...'",
"build": "webpack",
"postbuild": "echo 'Build completed!'"
}
在这个例子中,当你运行 npm run build 时,npm 会首先执行 prebuild 脚本,然后执行 build 脚本,最后执行 postbuild 脚本。