Передать параметр в сценарий NPM и передать его на webpack-dev-server - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь настроить свою конфигурацию webpack, а точнее передать параметр в конфигурацию Webpack с помощью команды NPM.

У меня моя команда NPM npm run start, который запускает webpack-dev-сервер, на котором работает мое веб-приложение, используя URL-адрес https://<hostname>/foo/. Как видите, веб-приложение обслуживается с использованием /foo/ в качестве базового пути. Эта функция «жестко запрограммирована», и все работает нормально.

Теперь я хотел бы улучшить эту функцию: я хотел бы запустить команду npm run start urlPrefix=bar, а затем в webpack.dev.js и webpack.common.js, используйте параметр urlPrefix, чтобы иметь собственный префикс, чтобы веб-приложение размещалось на https://<hostname>/bar/. Более того, эта переменная должна использоваться на стороне TSX (но для этого я должен использовать DefinePlugin https://webpack.js.org/plugins/define-plugin/).

То, что я пробовал:

  • Экспортируйте конфигурацию веб-пакета как функцию и используйте argv['urlPrefix'], как указано здесь: { ссылка }. Однако при использовании npm run start --webwbPrefix=bar в этом случае пользовательский префикс bar не читается, а используется foo: я думаю, что аргумент NPM не передается в web-dev-server. Более того, у меня возникла эта проблема (я скрыл некоторую информацию, но не думаю, что они актуальны): enter image description here

  • Use the command npm run start --define urlPrefix=foo, with this code in both webpack.common.js and webpack.dev.js:

     let computedURLPrefix = 'bar';
    
     args.some(argument => {
         const match = /^urlPrefix=(.+)$/.exec(argument);
         if (match !== null) {
             computedURLPrefix = match[1];
         }
    
         return match !== null;
     });
    

    In this case the webpack recognize the foo value, and the webapp is served in https:///foo, but is not usable since I got these errors: введите описание изображения здесь

...