Я хотел заняться обновлением кеша файлов в приложении Svelte и хотел эту часть сборки накопительного пакета. Я решаю добавить параметр строки запроса к ссылкам на файлы (например, index.html? V = 0.1) в сценариях распределенной сборки. Я создал константу «__cVersion__
» в моем сценарии rollup.config.js и попытался использовать «rollup-plugin-modify», но это обновило только мой код main.js и App.svelte (файлы, которые компилируются). Я также попробовал плагин @ rollup / plugin-replace с теми же результатами. Мне нужны были файлы, которые я также копировал (а не строил) из src в public, чтобы также были заменены экземпляры '__cVersion__
' в скриптах.
Следующее было моей начальной функцией экспорта rollup.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
}
};