Quasar CLI

Quasar CLI允许您立即创建新项目,方法是生成一个基本应用程序,并充满开始处理应用程序所需的所有内容。 它承担了大部分重任,因此您不必担心构建应用程序的冗余任务。

如果使用主入门套件,则只需要Quasar CLI。 如果你想要UMD版本,你将不会使用它。

# Node.js >= 8.9.0 is required.
$ yarn global add quasar-cli
# 或:
$ npm install -g quasar-cli

请熟悉以下命令:

$ quasar

...

Commands
init Create a project folder
dev Start a dev server for your App
build Build your app for production
clean Clean all build artifacts
new Quickly scaffold page/layout/component/... vue file
mode Add/remove Quasar Modes for your App
info Display info about your machine and your App
serve Create an ad-hoc server on App distributables
help Displays this message

查看任一命令的帮助信息:

$ quasar [command name] --help

init (Create Project Folder)

用启动器样板初始化App文件夹。

$ quasar init <folder-name>

你需要全局安装@vue/cli@vue/cli-init,或者只需要vue-cli

info(查看包版本)

Quasar CLI配备了多个NPM构建包(Webpack,Vue等)的稳定组合,经过严格测试后会经常更新。

为了让您看到Node,NPM,Quasar CLI,Quasar,Vue,Webpack,Cordova,Babel等多个版本,请在Quasar项目文件夹中发出以下命令:

$ quasar info

dev(开发服务器)

$ quasar dev -h

Description
Starts the app in development mode (hot-code reloading, error
reporting, etc)
Usage
$ quasar dev -p <port number>
Options
--theme, -t App theme (default: mat)
--mode, -m App mode [spa|pwa|cordova|electron] (default: spa)
--port, -p A port number on which to start the application
--hostname, -H A hostname to use for serving the application
--help, -h Displays this message

Only for Cordova mode:
--target, -T (required) App target
[android|ios|blackberry10|browser|osx|ubuntu|webos|windows]
--emulator, -e (optional) Emulator name
Example: iPhone-7, iPhone-X

Quasar开发服务器允许您通过编译和维护内存代码来开发您的应用程序。 一个Web服务器将为您的应用程序提供热备功能。 运行内存可以在更改代码时提供更快的重建速度。

Hot Reload不仅仅是在代码更改时刷新浏览器。 它会跳过刷新并在运行中更新您的代码,同时保持您的应用程序的状态(如您的Vue的模型数据)。 请注意,有些情况下这是不可能的,所以dev的网络服务器只会刷新你的浏览器。 (一定要确保一次只运行一个Quasar CLI实例,否则Hot-Reload和其他内容将会中断!)

根据您要开发的内容,您可以使用“quasar dev”命令启动开发服务器,如下所示:

# Developing a SPA
$ quasar dev
# ...or
$ quasar dev -m spa

# Developing a PWA
$ quasar dev -m pwa

# Developing a Mobile App (through Cordova)
$ quasar dev -m cordova -T [android|ios]

# Developing an Electron App
$ quasar dev -m electron

但是,有两个主题可用:Material Design(’mat’)和iOS(’ios’)。 为了指定一个特定的主题,在上面的命令中添加’-t’参数:

# Material Design
$ quasar dev -t mat

# iOS theme
$ quasar dev -t ios

如果您想更改为您的应用程序提供服务的主机名或端口,您有3个选项:

如果似乎有热重载的问题,您可以尝试两个修补程序:

build / clean (构建生产版本应用)

$ quasar build -h

Description
Builds distributables of your app.
Usage
$ quasar build -p <port number>
Options
--theme, -t App theme (default: mat)
--mode, -m App mode [spa|pwa|cordova|electron] (default: spa)
--target, -T App target
- Cordova (default: all installed)
[android|ios|blackberry10|browser|osx|ubuntu|webos|windows]
- Electron with default "electron-packager" bundler (default: yours)
[darwin|win32|linux|mas|all]
- Electron with "electron-builder" bundler (default: yours)
[darwin|mac|win32|win|linux|all]
--debug, -d Build for debugging purposes
--help, -h Displays this message

ONLY for Electron mode:
--bundler, -b Bundler (electron-packager or electron-builder)
[packager|builder]
--arch, -A App architecture (default: yours)
- with default "electron-packager" bundler:
[ia32|x64|armv7l|arm64|mips64el|all]
- with "electron-builder" bundler:
[ia32|x64|armv7l|arm64|all]

Quasar CLI可以将所有东西封装在一起,并优化您的应用程序进行生产。 它可以缩减源代码,提取供应商组件,利用浏览器缓存等等。

# build for production
$ quasar build

# build for production with specific theme
$ quasar build -t mat
$ quasar build -t ios
$ quasar build -m pwa -t mat

您还可以清理构建资源。

$ quasar clean

new (生成component、page、layout、Vuex store)

$ quasar new -h

Description
Quickly scaffold a page/layout/component/store module.

Usage
$ quasar new [p|page] <page_file_name>
$ quasar new [l|layout] <layout_file_name>
$ quasar new [c|component] <component_file_name>
$ quasar new plugin <plugin_name>
$ quasar new [s|store] <store_module_name>

# Examples:

# Create src/pages/MyNewPage.vue:
$ quasar new p MyNewPage

# Create src/pages/MyNewPage.vue and src/pages/OtherPage.vue:
$ quasar new p MyNewPage OtherPage

# Create src/layouts/shop/Checkout.vue
$ quasar new layout shop/Checkout.vue

Options
--help, -h Displays this message

这个命令只是一个辅助工具,以便快速搭建page/layout/component/vuex store模块。 你不需要使用它,但可以帮助你,当你不知道如何开始。

mode (PWA, Cordova, Electron)

$ quasar mode -h

Description
Add/Remove support for PWA / Cordova / Electron modes.
Usage
$ quasar mode -r|-a pwa|cordova|electron
Options
--add, -a Add support for mode [pwa|cordova|electron]
--remove, -r Remove support for mode [pwa|cordova|electron]
--help, -h Displays this message

当您使用主入门套件时,您可以构建SPA(单页网站/应用程序),PWA(Progressive Web App),Mobile App(通过Cordova)和/或Electron Apps。当您开发PWA,Cordova或Electron时,需要安装这些模式。如果您发出“quasar dev”或“quasar build”,它们将自动安装。

这些模式将在您的项目中添加一个“src- *”文件夹,其中包含非常具体的代码:

文件夹 模式 说明
src-pwa pwa 包含您可以调整的Service Worker文件。
src-cordova cordova 是一个Cordova项目文件夹,将使用您的’src’作为内容。从此文件夹中调整Cordova配置,添加/删除平台,启动画面,Cordova插件等。不要触摸“src-cordova/www”文件夹,因为它会在每个版本中被覆盖。
src-electron electron 具有主电子线程的代码。渲染器线程将成为’src’中的应用程序。

如果由于某种原因您决定不需要某种模式,则可以将其删除。这将永久删除相应的“src-*”文件夹。

$ quasar mode --remove pwa

serve (提供静态内容文件夹)

$ quasar serve -h

Description
Create an ad-hoc http(s) server on a specified folder.

This command has been deprecated in favor of using the
"http-server" NPM package: https://www.npmjs.com/package/http-server

Install it by typing: "yarn global add http-server" or "npm install -g http-server"
Check its usage by visiting the link above.

Basic usage is:
$ http-server [path] [options]

构建SPA或PWA时,可分发的文件夹可由任何静态网络服务器提供服务。 为了测试它(假设您没有特定的publicPath或者没有使用Vue Router“history”模式),您可以使用“http-server”npm软件包。

或者你可以建立你自己的服务器。 这里有些例子:

// when using default Vue Router "hash" mode
const
express = require('express'),
serveStatic = require('serve-static'),
port = process.env.PORT || 5000

const app = express()

app.use(serveStatic(...path-to-dist...))
app.listen(port)

// when using Vue Router "history" mode
const
express = require('express'),
serveStatic = require('serve-static'),
history = require('connect-history-api-fallback'),
port = process.env.PORT || 5000

const app = express()

app.use(history())
app.use(serveStatic(...path-to-dist...))
app.listen(port)

如果您需要重写URL的URL,或者只需要代理您的API请求,那么您可以使用“http-proxy-middleware”软件包:

// add this to one of the two previous examples:
const proxy = require('http-proxy-middleware')

// ...
app.use('/api', proxy({
'/api': {
target: `http://my-api.com:5050`,
pathRewrite: {"^/api" : ""}
}
}))

// then app.listen(...)

Finally, run one of these files:

$ node my-server.js