npm run xxx
如果在package.json文件中的scripts中配置了对应的脚本命令,则可以通过npm run xxx的方式运行脚本。
如下:npm run serve,npm run build,npm run lint
{
"name": "xc",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
},
"devDependencies": {
}
}
npx xxx xxx
运行脚本也可以不用再package.json文件中配置脚本命令,可以使用npx xxx()
vue-cli-service
vue-cli项目中,会安装给一个名为vue-cli-service的命令。
vue-cli-service serve 会启动一个开发服务器(基于webpack-dev-server)并且附带了开箱即用的模块热重载(Hot-Module-Replacement)。
用法:vue-cli-service serve [options] [entry]
选项:
--open 在服务器启动时打开浏览器
--copy 在服务器启动时将 URL 复制到剪切版
--mode 指定环境模式 (默认值:development)
--host 指定 host (默认值:0.0.0.0)
--port 指定 port (默认值:8080)
--https 使用 https (默认值:false)
除了通过命令行,可以使用vue.config.js中devServer字段配置开发服务器的参数;下面给出一段配置的例子:
devServer: {
port: 8080,//配置默认端口号
before(app) {
if ('true' !== process.env.NO_MOCK) {
apiMocker(app, path.resolve('./mocker/index.js'));
}
},
disableHostCheck: true,// 关闭HOST 检查
},
vue-cli-service build
ue-cli-service build 会在dist/ 目录下面产生一个可用于生产环境的包,带有 JS/CSS/HTML 的压缩,和为更好地缓存而做的 vendor chunk splitting。它的shunk manifest 会内敛在HTML里。
用法:vue-cli-service build [options] [entry|pattern]
选项:
--mode 指定环境模式 (默认值:production)
--dest 指定输出目录 (默认值:dist)
--modern 面向现代浏览器带自动回退地构建应用
--target app | lib | wc | wc-async (默认值:app)
--name 库或 Web Components 模式下的名字 (默认值:package.json 中的 "name" 字段或入口文件名)
--no-clean 在构建项目之前不清除目标目录
--report 生成 report.html 以帮助分析包内容
--report-json 生成 report.json 以帮助分析包内容
--watch 监听文件变化
更多命令
使用 vue-cli-service help 查看
devServer配置项的disableHostCheck属性
devServer.disableHostCheck配置项用于配置是否关闭用于 DNS 重绑定的 HTTP 请求的 HOST 检查。 DevServer 默认只接受来自本地的请求,关闭后可以接受来自任何 HOST 的请求。 它通常用于搭配—host 0.0.0.0使用,因为你想要其它设备访问你本地的服务,但访问时是直接通过 IP 地址访问而不是 HOST 访问,所以需要关闭 HOST 检查。
devServer配置
配置1
devServer: {
disableHostCheck: true,
open: true,
host: '192.168.10.43', // 本机ip
port: 8080, // 本机端口
https: true,
proxy: 'https://bellonlinetest.bell.ai', // 需代理的地址
before: app => {}
},
配置2
devServer: {
proxy: {
'/admin/': {
target: 'https://bellonlinetest.bell.ai', // 目标路径,别忘了加http和端口号
changeOrigin: true, // 是否跨域
pathRewrite: {
'^/admin': '/admin' // 重写路径
// '^/123': '' // 比如/123/admin/being/classes/classInfo 会被替代成/admin/being/classes/classInfo
}
}
}
}