copy-webpack-plugin: вывод версии пакета в выходной путь / имя файла - PullRequest
0 голосов
/ 30 октября 2018

Я новичок в webpack (я использую v4.23 на момент публикации) и использую copy-webpack-plugin , чтобы переместить некоторые ресурсы в мой каталог dist. Она предназначена для темы WordPress (не имеет значения), и вместо того, чтобы добавлять версию в качестве атрибута строки запроса к ссылке скрипта, которую обычно поддерживает WordPress (например: /css/some-package/style.css?ver=1.2.3), я хотел бы добавить версию пакета зависимостей в путь (например: /css/some-package/1.2.3/style.css).

Мой вопрос: Можно ли ссылаться на пакет зависимостей версия в имени выходного файла с помощью copy-webpack-plugin?

Моя текущая конфигурация cwp:

plugins: [
   // ...
   new CopyWebpackPlugin([
      { from: 'node_modules/purecss/build/pure-min.css', to: 'css/purecss/pure-min.css', toType: 'file' }
   ])
]

Я бы хотел, чтобы результат был примерно таким:

to: 'css/purecss/[package_version]/pure-min.css'

Следующая работает , но это похоже на гетто, и я думаю, что может быть более разумный способ? (Это также потребовало бы, чтобы я включил package.json в дистрибутив, что не конец света, но не желательно):

const pkg = require( './package.json' );
// ...
{ from: 'node_modules/purecss/build/pure-min.css', to: 'css/purecss/' + pkg.dependencies.purecss.replace( /[^0-9.]/g, '' ) + '/pure-min.css', toType: 'file' }
// Result: /css/purecss/1.0.0/pure-min.css

Я знаю, что в веб-пакете есть своя кэш-очистка / хэши, но мне кажется, что номер версии, а не хэш в пути / имени файла (по крайней мере, для внешних целей, по непонятной причине, связанной с WordPress). Я полагаю, что мог бы связать CSS, но я хотел оставить его отдельным / внешним, чтобы предоставить пользователю возможность загружать эту и некоторые другие зависимости через CDN, если они захотят сделать это в администраторе темы.

Спасибо, Daniel

...