Webpack 4 разрешает псевдоним с несколькими возможными местоположениями - PullRequest
1 голос
/ 28 марта 2019

Исходный код моего проекта делится на две части: общие и специфичные для сайта компоненты.Это выглядит так:

/root/
  /shared/
    component1.js
    component2.js
  /site/
    component2.js
    component3.js

Любой компонент может импортировать другой, используя следующий синтаксис:

component3.js:
  import Component1 from '~/component1'
  import Component2 from '~/component2'

Я хочу, чтобы веб-пакет искал любой компонент в / site / folder иесли он не найден, то в папке / shared /.

Я ищу правильную комбинацию псевдонимов и модулей разрешения веб-пакета для достижения этой цели.

  1. В настоящее время я использую много символических ссылок.Поэтому ссылка на component1 размещена в папке сайта, а последняя папка указана в качестве точки входа в веб-пакет.Это работает, но в реальном проекте есть огромная путаница символических ссылок.

  2. Я хочу, чтобы путь ~ имел два псевдонима: / site / и / shared /.Примерно так:

resolve: {
  alias: {
    '~': ['/path/to/site', '/path/to/shared']
  }
}

Но это не работает, так как значение псевдонима должно быть строкой.

Давайте попробуем модули:
modules: [
  '/path/to/site',
  '/path/to/shared',
  'node_modules'
]

Команда импорта изменится на import Component1 from 'component1'.Кажется, это работает, но что, если некоторые из моих компонентов имеют то же имя, что и некоторые пакеты в node_modules?Я должен как-то их различать.

...