Как вы используете псевдоним `../../ theme.config` в пакете нейтрино? - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь использовать семантическое оформление пользовательского интерфейса (хорошо семантическое-реагирование пользовательского интерфейса https://react.semantic -ui.com / theming / ) в моем веб-проекте. Проект использует Neutrino для обработки веб-пакетов. Я следовал настройке как мог в следующей статье: https://medium.com/webmonkeys/webpack-2-semantic-ui-theming-a216ddf60daf.

Большая часть этого работает, но я продолжаю получать:

[2] ^
[2] Can't resolve '../../theme.config' in '/Users/bmoellers/GitHub/univex-tooling/node_modules/semantic-ui-less/definitions/modules'
[2]       in /Users/bmoellers/GitHub/univex-tooling/node_modules/semantic-ui-less/definitions/modules/transition.less (line 19, column 0)
[2]     at runLoaders (/Users/bmoellers/GitHub/univex-tooling/node_modules/webpack/lib/NormalModule.js:286:20)
[2]     at /Users/bmoellers/GitHub/univex-tooling/node_modules/loader-runner/lib/LoaderRunner.js:364:11
[2]     at /Users/bmoellers/GitHub/univex-tooling/node_modules/loader-runner/lib/LoaderRunner.js:230:18
[2]     at context.callback (/Users/bmoellers/GitHub/univex-tooling/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
[2]     at process._tickCallback (internal/process/next_tick.js:68:7)

Кто-нибудь знает, как сделать псевдонимы, упомянутые в статье, используя конфигурацию нейтринного веб-пакета?

Из статьи: // в верхней части конфигурационного файла веб-пакета

module.exports = {
   entry: ...,
   output: {
    ... 
   },
   resolve: {
     alias: {
        '../../theme.config$': path.join(__dirname, 'my-semantic-theme/theme.config')  
     }
  },
  module: {
    ...
  }
}

Что я пробовал в моей конфигурации нейтрино:

    neutrino.config.module
      .rule('compile')
      .use('babel')
      .tap(options => merge({
        plugins: [
          ["module-resolver", {
            "root": [''],
            "alias": {
              "@univex/admin-api": "../../../src/modules/admin-api/src",
              "@univex/admin-mobx": "../../../src/modules/admin-mobx/src",
              "@univex/integration-component": "../../../src/modules/integration-component/src",
              "@univex/models": "../../../src/modules/models/src",
              "@univex/utilities": "../../../src/modules/utilities/src",
              "../../theme.config$": "../../my-semantic-theme/admin/theme.config",
            }
          }],
        ],
      }, options));
  },

В основном, когда мы используем другие импорты в нашем коде, мы затем добавляем псевдоним к коду в нашем моно репо (так что import '@univex/admin-api псевдонимы к ветке кода выше). Однако, похоже, это не помогает. Я также попытался переместить этот neutrino.config.resolve.alias и установить ключ там, но все еще не решал проблему. Я также попытался удалить $ из theme.config$.

Есть ли разница для @import. Обратите внимание, что наша кодовая база является моно-репо, поэтому она имеет много модулей и три приложения в одной кодовой базе. Каждый построен по-своему. Каждый построен с webpack-dev-server --mode development. Затем это контролируется нейтринными конфигурациями.

...