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', // 本机ipport: 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}}}}
