如何设置汇总以便 Svelte 项目在保存时自动编译而不被提供?
How to set up rollup so that a Svelte project is automatically compiled on save without being served?
在 Svelte 项目中,package.json
文件中已经设置了三个脚本
"scripts": {
"build": "rollup -c",
"dev": "rollup -c -w",
"start": "sirv public --single"
},
我从 rollup.config.js
文件中了解到的内容
- 运行
npm run build
将项目编译到public
文件夹并压缩文件一次
- 运行
npm run dev
编译时不缩小并在编译后自动运行 npm run start
因此 public 文件夹在更改时提供并重新加载
由于我使用的是 firebase 模拟器,其中包括模拟 public 目录的托管和服务,我正在寻找一种方法,以便在没有服务的情况下保存时仅自动编译 Svelte 项目 ~ 我怎么能实现这个?
编辑:我怎样才能通过修改 rollup.config
来实现这一点呢? "autobuild": "..."
可以添加方便切换不同模式吗?
正如您在 default Rollup config file for a Svelte project 的 plugins
部分中看到的那样,Rollup 有条件地执行以下 3 个步骤:
// In dev mode, call `npm run start` once
// the bundle has been generated
!production && serve(),
// Watch the `public` directory and refresh the
// browser on changes when not in production
!production && livereload('public'),
// If we're building for production (npm run build
// instead of npm run dev), minify
production && terser()
为了防止您的站点被自动提供服务,以及您的浏览器自动刷新,您可以简单地注释掉前两步。在监视标志 (-w
) 仍然设置的情况下,如果您使用 npm run dev
.
启动项目,您的项目仍会在保存时自动重建
如果你总是希望你的文件缩小,你可以在第三步中删除环境条件。
所以你的 plugins
部分的结尾应该是这样的:
// In dev mode, call `npm run start` once
// the bundle has been generated
// !production && serve(),
// Watch the `public` directory and refresh the
// browser on changes when not in production
// !production && livereload('public'),
// If we're building for production (npm run build
// instead of npm run dev), minify
// production && terser()
terser()
此外,如果这些更改是永久性的并且您知道您永远不需要热服务内容,则可以删除配置文件顶部附近的 serve()
函数定义,以及删除 import
rollup-plugin-livereload
的语句(提供 livereload()
函数)。
在 Svelte 项目中,package.json
文件中已经设置了三个脚本
"scripts": {
"build": "rollup -c",
"dev": "rollup -c -w",
"start": "sirv public --single"
},
我从 rollup.config.js
文件中了解到的内容
- 运行
npm run build
将项目编译到public
文件夹并压缩文件一次 - 运行
npm run dev
编译时不缩小并在编译后自动运行npm run start
因此 public 文件夹在更改时提供并重新加载
由于我使用的是 firebase 模拟器,其中包括模拟 public 目录的托管和服务,我正在寻找一种方法,以便在没有服务的情况下保存时仅自动编译 Svelte 项目 ~ 我怎么能实现这个?
编辑:我怎样才能通过修改 rollup.config
来实现这一点呢? "autobuild": "..."
可以添加方便切换不同模式吗?
正如您在 default Rollup config file for a Svelte project 的 plugins
部分中看到的那样,Rollup 有条件地执行以下 3 个步骤:
// In dev mode, call `npm run start` once
// the bundle has been generated
!production && serve(),
// Watch the `public` directory and refresh the
// browser on changes when not in production
!production && livereload('public'),
// If we're building for production (npm run build
// instead of npm run dev), minify
production && terser()
为了防止您的站点被自动提供服务,以及您的浏览器自动刷新,您可以简单地注释掉前两步。在监视标志 (-w
) 仍然设置的情况下,如果您使用 npm run dev
.
如果你总是希望你的文件缩小,你可以在第三步中删除环境条件。
所以你的 plugins
部分的结尾应该是这样的:
// In dev mode, call `npm run start` once
// the bundle has been generated
// !production && serve(),
// Watch the `public` directory and refresh the
// browser on changes when not in production
// !production && livereload('public'),
// If we're building for production (npm run build
// instead of npm run dev), minify
// production && terser()
terser()
此外,如果这些更改是永久性的并且您知道您永远不需要热服务内容,则可以删除配置文件顶部附近的 serve()
函数定义,以及删除 import
rollup-plugin-livereload
的语句(提供 livereload()
函数)。