Я новичок в 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