Snowpack 3.8 配置不同根目录运行dev server无法找到源文件夹问题咨询
项目结构如下图所示:
可行配置方案
之前的配置存在两个问题:
root配置项接受的是目录路径,你填写的./src/index.html为文件路径,属于无效配置- 原有
mount规则中src: "/src"会将src目录下的资源挂载到/src/路由前缀下,因此存放在src中的index.html只能通过/src/index.html路径访问,无法从根路径直接读取
方案1:调整mount映射规则(推荐)
该方案不需要修改root配置,对项目原有结构改动最小:
export default { mount: { public: { url: '/', static: true }, // 将src目录下的所有资源直接挂载到服务根路由 src: { url: '/' } }, devOptions: { // 可选配置:启动dev server时自动打开index.html open: '/index.html' } }
注意:如果你的
public目录下原本存在index.html文件,请先删除该文件,避免静态资源优先级更高导致访问冲突。
配置生效后,src目录下的index.html可以直接通过http://localhost:8080/访问,原有public目录下的静态资源也可以正常从根路径读取。
方案2:显式指定root为src目录
如果你需要严格将src作为服务的根目录,可以使用以下配置:
export default { // 指定服务根目录为项目根目录下的src文件夹 root: './src', mount: { // 挂载项目根目录下的public文件夹到服务根路由 '../public': { url: '/', static: true } }, devOptions: { open: '/index.html' } }
该方案下,Snowpack依然从项目根目录读取package.json和配置文件,仅将服务端的资源根目录设定为src,不需要从src目录内启动服务。
验证方法
配置修改完成后,重启Snowpack dev server即可生效,如果依然存在异常,可以执行npx snowpack config命令打印当前生效的配置,核对mount规则是否符合预期。
内容的提问来源于stack exchange,提问作者VINIT CHURI
相关产品推荐
相关产品推荐

