更新 Svelte 后生成错误:包子路径 './compiler.js' 未由 "exports" 定义

Build error after updating Svelte: Package subpath './compiler.js' is not defined by "exports"

问题

我使用的是 Svelte 版本 3.0.0 并使用 npm i svelte@latest 更新到最新版本。现在我无法让应用程序进入 运行,我总是得到这个错误:

[!] Error: Package subpath './compiler.js' is not defined by "exports" in /home/blub/coding/bla/node_modules/svelte/package.json Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './compiler.js' is not defined by "exports" in /home/blub/coding/bla/node_modules/svelte/package.json

失败的解决方案

我也将 rollup-plugin-svelte 更新到 5.2.0 版,但这没有帮助。我还必须更新任何其他依赖项吗?这是我的依赖项列表:

  "devDependencies": {
    "node-sass": "^4.12.0",
    "npm-run-all": "^4.1.5",
    "rollup": "^2.44.0",
    "rollup-plugin-commonjs": "^10.0.0",
    "rollup-plugin-livereload": "^1.0.0",
    "rollup-plugin-node-resolve": "^5.2.0",
    "rollup-plugin-svelte": "^5.2.3",
    "rollup-plugin-terser": "^4.0.4",
    "svelte": "^3.37.0",
    "svelte-preprocess-sass": "^0.2.0"
  },
  "dependencies": {
    "axios": "^0.19.0",
    "sirv-cli": "^0.4.4"
  },

此问题是由于 svelte v3.29.5 的重大更改所致。所以如果你想使用这个版本你还需要更新 rollup-plugin-svelte 至少 v6.1.1:

npm i -D rollup-plugin-svelte@6.1.1
# or with yarn
yarn add -D rollup-plugin-svelte@6.1.1

我有一个旧的 Svelte 项目,没有时间全部更新。我发现将 Svelte 降级到 3.29.4 解决了这个问题。

npm i -D svelte@3.29.4