javascript - svelte + rollup 中的环境变量

标签 javascript environment svelte rollup

我正在寻找一种设置环境的简单方法。 IE。如果我能运行 npm run dev:local 那就太好了和 npm run dev:staging加载不同的环境文件,这些文件在运行时可通过 process.env 访问.了解它已编译,因此我可能必须以不同的方式访问变量。我直接从 sveltejs/template 使用带有汇总的 svelte。它应该很简单,但我看不出有什么办法。这很麻烦,但可以用 webpack 来做。有没有一种简单的方法可以做到这一点?

最佳答案

您可以使用 @rollup/plugin-replace 在编译后的代码中注入(inject)构建时间常量。 .
像这样的东西:rollup.config.js

import replace from '@rollup/plugin-replace'
...

const production = !process.env.ROLLUP_WATCH

export default {
  ...
  plugins: [
    replace({
      'process.env': production ? '"production"' : '"dev"',
    }),
    ...
  ]
}
注意值的双引号:'"production"' .该插件按代码中的原样注入(inject)字符串,因此,如果您想要一个字符串,则需要引号中的引号。
此外,正如插件文档中所提到的,它应该放在插件数组的开头,以启用优化,例如通过它后面的其他插件抖掉死代码。

关于javascript - svelte + rollup 中的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62647804/

相关文章:

javascript - 将 ng-click 处理程序添加到 angularjs 中的重复元素

python - 如何在不同conda环境的两个不同python进程之间交换数据?

xcode - React-native 设置用于构建/存档的 ENVFILE 文件

javascript - 汇总、Svelte、SCSS : how to build different bundles at once?

javascript - Qualtrics JavaScript : Append an image over matrix text boxes

javascript - Wicket 检索要在 Java 中使用的 JavaScript 变量

javascript - Bootstrap 3 为单个模态设置选项

amazon-web-services - 更新 ECS 容器中的环境变量 Secret

svelte - 如何在 sveltekit netlify 中使用文件 api

javascript - SvelteKit - "ReferenceError: File is not defined"