Исходные карты Vue CLI для стилизации части файла компонента Vue
Я играю с проектом Vue CLI. Я настроил автозагрузку проекта, установил некоторые изменения в разработке, например:
package.json
"dependencies": {
"bootstrap": "^4.3.1",
"core-js": "^3.0.1",
"preload-it": "^1.2.2",
"register-service-worker": "^1.6.2",
"vue": "^2.6.10",
"vue-router": "^3.0.3",
"vuetify": "^1.5.14",
"vuex": "^3.1.1"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^3.7.0",
"@vue/cli-plugin-pwa": "^3.7.0",
"@vue/cli-service": "^3.7.0",
"fontello-cli": "^0.4.0",
"node-sass": "^4.9.0",
"sass-loader": "^7.1.0",
"stylus": "^0.54.5",
"stylus-loader": "^3.0.2",
"vue-cli-plugin-vuetify": "^0.5.0",
"vue-template-compiler": "^2.5.21",
"vuetify-loader": "^1.2.2"
}
vue.config.js
module.exports = {
configureWebpack: {
devtool: process.env.NODE_ENV === 'development'
? 'inline-source-map'
: false,
},
css: {
sourceMap: process.env.NODE_ENV === 'development'
}
}
babel.config.js
module.exports = {
presets: [
[
'@vue/app',
{ useBuiltIns: 'entry' }
]
]
}
Но исходные карты для файлов vue по-прежнему генерируются неправильно (для файлов scss все в порядке).
![sourcemap preview]()
После нажатия на ссылку href для добавления компонента
![source tab]()
Примечание:
- много версий одного и того же файла в веб-пакете://./
- в редакторе исходного кода отображается только та часть, которая находится в теге (возможно, это и есть причина)
- файл из рабочей области смонтированной файловой системы не используется
А вот так выглядит оригинальный файл - его можно редактировать через Chrome devtools
![enter image description here]()
Можно ли исправить это так, чтобы вкладка инспектора элементов (стиль) обеспечивала правильную исходную цель?
ОБНОВЛЕНИЕ 1
Простейшая настройка:
Установите Vue CLI (3.7)
Добавьте мой vue.config.js (чтобы включить исходные карты)
Запустите npm run serve
![enter image description here]()
ОБНОВЛЕНИЕ 2
То же самое для Vue CLI 3.5
Я также создал репо с тестовым проектом, но, как я уже писал, это просто стартовый проект с моим конфигом.
https://github.com/l00k/vue-sample
ОБНОВЛЕНИЕ 3
Vue-Cli GitHub выпускhttps://github.com/vuejs/vue-cli/issues/4029
Ответы
Ответ 1
До сих пор я не нашел решения - по крайней мере, с помощью Vue CLI.
Но я нашел обходной путь.
Но прежде всего - вся проблема не в Vue CLI, а в IMU для vue-loader-plugin. Я так думаю, потому что, используя чистую настройку с vue и webpack, я также вижу эту проблему.
Я обнаружил, что это связано с неправильной исходной картой, сгенерированной для тех частей файла Vue и
Источником для этих частей является раздевание только содержимого этих тегов. Вероятно, поэтому браузер не смог сопоставить его с источником. Также неверный путь к исходному файлу в исходной карте.
Я подготовил дополнительный загрузчик для веб-пакета, который исправляет эти исходные карты.
Проверьте sm-fix-loader в репо ниже.
Я не знаю, решает ли это все проблемы, но по крайней мере в моих случаях это работает потрясающе.
Что работает нормально:
Сборка NODE_ENV=development webpack
Встроенный SCSS (в файле vue) и в отдельном файле <style src="...">
Встроенный TS/JS (в файле vue) и в отдельном файле <script src="...">
HRM NODE_ENV=development webpack-dev-server --hotOnly
Встроенный SCSS (в файле vue) и в отдельном файле <style src="...">
Он также перезагружает стили без перезагрузки самой страницы: D
Встроенный TS/JS (в файле vue) и в отдельном файле <script src="...">
Репо с рабочим примером:
https://github.com/l00k/starter-vue