Я хотел заняться обновлением файлового кэша в приложении Svelte и хотел эту часть сборки накопительного пакета. Я решил добавить параметр строки запроса к ссылкам на файл (например, «index. html? V = 0.1») в сценариях распределенной сборки. Я создал постоянную '__cVersion__
' в своем скрипте rollup.config. js и попытался использовать 'rollup-plugin-modify', но это только обновило мой код main. js и App.svelte (файлы составляется). Я также попробовал плагин '@ rollup / plugin-replace' с теми же результатами. Мне нужны были файлы, которые я также копировал (не собирал) из sr c в publi c, чтобы в сценариях также были заменены экземпляры '__cVersion__
'.
Ниже был мой первый накопительный пакет .config. js функция экспорта (замена строки, которая не сработала):
export default {
input: 'src/main.js',
output: {
sourcemap: true,
format: 'iife',
name: 'app',
file: 'public/build/bundle.js'
},
plugins: [
// this only seems to work on the main.js and .svelte files
modify({
'__cVersion__': 'c0.1.19'
}),
svelte({
dev: !production,
css: css => {
css.write('public/build/bundle.css');
}
}),
copy({
targets: [{
src: 'src/bs4.4.1.css',
dest: 'public/'
},
{
src: 'src/sw.js',
dest: 'public/'
},
{
src: 'src/index.html',
dest: 'public/'
},
{
src: 'src/manifest.json',
dest: 'public/'
},
{
src: 'src/images/*',
dest: 'public/images/'
}
]
}),
resolve({
browser: true,
dedupe: ['svelte']
}),
commonjs(),
// cache files
workbox({
mode: 'injectManifest',
options: {
swSrc: 'src/sw.js',
swDest: 'public/sw.js',
globDirectory: 'public',
globPatterns: [
'**/*.{html,json,js,css,png,map}',
'./manifest.json',
'./images/**',
'./bs4.4.1.css',
'./index.html'
]
}
}),
!production && serve(),
!production && livereload('public'),
production && terser()
],
watch: {
clearScreen: false
}
};