This template should help get you started developing with Vue 3 in Vite.
VSCode + Volar (and disable Vetur).
TypeScript cannot handle type information for .vue
imports by default, so we replace the tsc
CLI with vue-tsc
for type checking. In editors, we need Volar to make the TypeScript language service aware of .vue
types.
See Vite Configuration Reference.
To customize the configuration, you can modify the Vite config file. Here's an example of how to inject specific globals and modules using the @rollup/plugin-inject
plugin:
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import nightwatchPlugin from 'vite-plugin-nightwatch'
import vueDevTools from 'vite-plugin-vue-devtools'
import inject from '@rollup/plugin-inject'
// https://vitejs.dev/config/
export default ({ mode }) => {
return defineConfig({
plugins: [
vue(),
vueJsx(),
nightwatchPlugin({
renderPage: './nightwatch/index.html'
}),
vueDevTools(),
inject({
process: 'process/browser',
querystring: 'querystring-es3'
})
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)),
process: 'process/browser',
querystring: 'querystring-es3'
}
}
})
}
This configuration includes the @rollup/plugin-inject
to inject global variables or modules, which is particularly useful for ensuring compatibility with certain dependencies in the browser.
pnpm install
pnpm dev
pnpm build
Run End-to-End Tests with Nightwatch
# When using CI, the project must be built first.
pnpm build
# Runs the end-to-end tests
pnpm test:e2e
# Runs the tests only on Chrome
pnpm test:e2e --env chrome
# Runs the tests of a specific file
pnpm test:e2e tests/e2e/example.ts
# Runs the tests in debug mode
pnpm test:e2e --debug
Run Headed Component Tests with Nightwatch Component Testing
pnpm test:unit
pnpm test:unit -- --headless # for headless testing
Lint with ESLint
pnpm lint