причина
При обработке упаковки с помощью Webpack вы можете настроить псевдоним для каталога, и код может использовать относительный путь к псевдониму для ссылки на ресурсы.
В проектах Vue мы обычно используемvue-webpack
Scaffolding генерирует шаблоны проектов, а затем настраивает@
Поместите ресурсы и исходный код в корневой каталог проекта./src
псевдоним каталога;
...,
resolve: {
...,
alias: {
'@': resolve('src')
}
}
Таким образом, мы можем использовать форму в файле js, напримерimport tool from '@/utils/xxx'
способ цитирования/src/utils/xxx.js
файл, и Webpack правильно распознает и упаковывает его.
Но в файлах css нравится меньше, sass, стилус, используйте@import "@/style/theme"
Синтаксис для ссылки является относительным@
Каталог сообщает об ошибке «Не удается найти каталог @», что указывает на то, что веб-пакет неправильно определил относительный путь к ресурсу.
анализировать
Причина в том, что файл css будет использоватьсяcss-loader
ручка, здесь css@import
Следующая строка будетcss-loader
Рассматривается как абсолютное разрешение пути, так как мы не добавлялиcss-loader
псевдоним, поэтому он сообщит, что не найден@
содержание.
решить
Есть два решения для использования псевдонимов относительных путей при импорте css в Webpack;
Один прямоcss-loader
Добавить кailasпуть, но вvue-webpack
В данном шаблоне громоздко и избыточно добавлять конфигурацию только для этого плагина;
Второй — добавить строку в начало пути ссылки~
символы, такие как@import "~@/style/theme"
; Webpack запустится с~
Пути с префиксом символов разрешаются как зависимые модули, так что@
Конфигурация псевдонима вступит в силу.
Суммировать
~
Думайте о разрешении модуля как о чем-то, что делает веб-пакет, а не css-loader.
Все виды не-js прямых ссылок (import
require
) можно использовать статические ресурсы, полагаясь на проблемы с загрузкой относительного пути.~
Синтаксис отлично разрешен;
Например, в css-модуле:@import "~@/style/theme"
В свойстве css:background: url("~@/assets/xxx.jpg")
В html-теге:<img src="~@/assets/xxx.jpg" alt="alias">
использованная литература
Перепечатано с:wiki Информация по этому маршруту What/wiki/%E6%8A…