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

标签 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)作品:
foo
但是当我尝试进入像 console.log(foo.bar) 这样的 foo 对象时,我得到 foo 未定义:
fooUndefined

最佳答案

好问题!对象 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 }),
      },
    }),
...
在你的 slim 文件中
  const { bar, ...rest } = foo;
  console.log("bar=>", bar);
  console.log("env=>", rest);

关于javascript - 无法进入汇总插件替换定义的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70618289/

相关文章:

javascript - 从模板内有条件实例化 Angular Controller

javascript - 如何上传 Sveltekit 多个文件

jestjs - 如何在 svelte 中模拟/模拟子组件事件以进行 Jest 测试?

typescript - 每个组件的 Rollup + Typescript 输出 JS 文件

javascript - 带有 rollup 的 CommonJS 语法

javascript - 将 webpack 升级到版本 5 后出现运行时错误 : Buffer is not defined

javascript - 无法更改内容和侧边栏宽度

javascript - 使用 lodash 检查对象中是否存在键

javascript - Svelte:如何在按向上箭头和向下箭头键时将焦点设置到列表项中的上一个/下一个元素?

javascript - CSS:当关注其他元素时悬停