diff --git a/packages/playground/vue-sourcemap/vite.config.js b/packages/playground/vue-sourcemap/vite.config.js index 045410259fe590..2a48cad3cb00d4 100644 --- a/packages/playground/vue-sourcemap/vite.config.js +++ b/packages/playground/vue-sourcemap/vite.config.js @@ -5,6 +5,7 @@ const vuePlugin = require('@vitejs/plugin-vue') */ module.exports = { css: { + devSourcemap: true, preprocessorOptions: { less: { additionalData: '@color: red;' diff --git a/packages/plugin-vue/src/index.ts b/packages/plugin-vue/src/index.ts index 28280ed79188b8..7bdf63b700fa15 100644 --- a/packages/plugin-vue/src/index.ts +++ b/packages/plugin-vue/src/index.ts @@ -63,6 +63,7 @@ export interface ResolvedOptions extends Options { compiler: typeof _compiler root: string sourceMap: boolean + cssDevSourcemap: boolean devServer?: ViteDevServer devToolsEnabled?: boolean } @@ -99,6 +100,7 @@ export default function vuePlugin(rawOptions: Options = {}): Plugin { reactivityTransform, root: process.cwd(), sourceMap: true, + cssDevSourcemap: false, devToolsEnabled: process.env.NODE_ENV !== 'production' } @@ -137,6 +139,7 @@ export default function vuePlugin(rawOptions: Options = {}): Plugin { ...options, root: config.root, sourceMap: config.command === 'build' ? !!config.build.sourcemap : true, + cssDevSourcemap: config.css?.devSourcemap ?? false, isProduction: config.isProduction, devToolsEnabled: !!config.define!.__VUE_PROD_DEVTOOLS__ || !config.isProduction diff --git a/packages/plugin-vue/src/style.ts b/packages/plugin-vue/src/style.ts index c124f3ec744e4f..cab75791bd54ec 100644 --- a/packages/plugin-vue/src/style.ts +++ b/packages/plugin-vue/src/style.ts @@ -23,13 +23,17 @@ export async function transformStyle( isProd: options.isProduction, source: code, scoped: block.scoped, - postcssOptions: { - map: { - from: filename, - inline: false, - annotation: false - } - } + ...(options.cssDevSourcemap + ? { + postcssOptions: { + map: { + from: filename, + inline: false, + annotation: false + } + } + } + : {}) }) if (result.errors.length) {