Почему Webpack Task Runner для Visual Studio не позволяет использовать несколько выходных файлов?
Я использую Visual Studio 2017 с установленным расширением Webpack Runner. У меня есть следующие файлы TS:
- /Scripts/TypeA/A.ts
- /Scripts/TypeB/B.ts
И хотел бы перенести их на следующее:
- Сценарии /TypeA/A_transpiled.js
- Сценарии /TypeB/B_transpiled.js
Нет "чистого" способа сделать это!
Следуя примеру кода "multi-compiler", определение множественного экспорта, кажется, поддерживается в Webpack: https://github.com/webpack/webpack/tree/master/examples/multi-compiler. Тем не менее, это не работает в VS 2017. Я получаю следующую ошибку:
Неверный объект конфигурации. Webpack был инициализирован с использованием объекта конфигурации, который не соответствует схеме API
Я могу использовать параметр "имя", как показано здесь:
output: { filename: '[name].js', path: path.resolve(__dirname, './Scripts/') }
но он все равно будет создавать все файлы в одной папке (сценарии).
Лучший, но хакерский способ сделать это - сделать весь путь частью имени записи, как показано здесь:
entry: { 'Scripts/TypeA/A_transpiled': './Scripts/TypeA/A.ts', 'Scripts/TypeB/B_transpiled': './Scripts/TypeB/B.ts' }, output: { filename: '[name].js', path: path.resolve(__dirname, '') }
Это создаст файлы в правильном месте. Однако это имеет и другие недостатки. Например, экспорт и использование ваших файлов ts в качестве библиотеки потребует от вас использования полного пути (если вы используете параметр "name" в качестве имени библиотеки), что может стать громоздким.
Это похоже на огромный недостаток / отсутствие функциональности. Я что-то упустил, или я сделал что-то не так, используя подход "мультикомпилятор"? Почему что-то такое простое не реализовано в Webpack Task Runner? Должен ли я полностью отказаться от Webpack и просто положиться на Gulp или Grunt?
1 ответ
Я переустановил веб-пакет, используя npm, чтобы у меня была последняя версия веб-пакета (3.11.0). Я был в состоянии "мультикомпилятор" подход, указанный в этой ссылке:
https://github.com/webpack/webpack/tree/master/examples/multi-compiler