无法进入由汇总插件定义的对象-替换

2022-08-17 00:00:00 javascript svelte rollupjs svelte-3

在Svelte组件中,我试图访问我在汇总配置文件中设置的对象。 我的rollup.config.js文件如下:

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

...
export default {
...
    replace({
        foo: JSON.stringify({ bar: 'Hello' }),
    }),

...

在我的Svelte组件中,一个简单的console.log(foo)起作用:

但是,当我尝试进入类似console.log(foo.bar)foo对象时,我得到foo is not fined:


解决方案

问得好!对象foo仍未定义,因此它将抛出正确的错误,并且找不到foo要替换的对象。

解决方案是让替换插件完成其工作。您可以在js.svelte文件中像这样访问变量


const { bar } = foo;

console.log(bar);

注意:对此插件进行了更改检查here以了解详细信息。如果您计划使用dotenv来使用环境变量,请考虑

import { config } from "dotenv";

...
replace({
      values: {
        foo: JSON.stringify({ bar: "Hello", ...config().parsed }),
      },
    }),
...

和您的svelte文件

  const { bar, ...rest } = foo;
  console.log("bar=>", bar);
  console.log("env=>", rest);

相关文章