svelte + rollup 中的环境变量

Environment variables in svelte + rollup

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

您可以使用 @rollup/plugin-replace.

在已编译代码中注入构建时间常量

像这样:

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"'。该插件按照代码中的原样注入字符串,因此,如果您想要一个字符串,则需要在引号中加上引号。

此外,如插件文档中所述,它应该放在插件数组的开头,以启用优化,例如通过它后面的其他插件清除死代码。