javascript - 有没有办法将文件/常量导入到 json 文件中

标签 javascript json webpack

在我的组件中,我想包含一个 json 数据文件,所以想一下

import slides from './slides-data.json'

slides-data.json 看起来像

{
  "slides": [
    { img: "img.png", "text": "some text" },
    ...
  ]
}

理想情况下,我想将图像导入到 json 文件中,如下所示

import MyImage from './assets/img.png'
{
  "slides": [
    { img: "img.png", "text": "some text" },
    ...
  ]
}

这不是一个有效的 json,但我正在使用 webpack 来处理加载器,并且想知道这样的事情是否可能?

最佳答案

您可以为slides-data.json编写自己的加载器(仅示例,未经测试):

module.exports = function(source) {
    this.cacheable();
    JSON.parse(source).slides.forEach(function(slide) {
        this.addDependency(slide.img); // need to resolve this path before adding as dependency
    });
    return source;
};

并在配置中添加加载器:

{test: /slides-data\.json$/, loader: "json-loader!your-custom-slides-loader"}

您还可以为 slides-data.json 使用自己的文件扩展名。

<小时/>

但首先请查看这些链接:

How to write a loader

Loaders API

关于javascript - 有没有办法将文件/常量导入到 json 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37206340/

相关文章:

bash - Vue init webpack 测试 - 未创建项目 - 严格模式错误?

javascript - 在给定坐标和最大距离的情况下查找到某个点的最近点 - 使用带有 MEAN 堆栈的 Mongoose 查询结果未定义

javascript - 单击后 Magento 结账按钮可用

javascript - 在 React Native 中嵌入 Python/C++ 代码?

JavaScript 计时器不会在页面重新加载时继续运行

javascript - 为什么返回生成的 HTML 而不是 JSON 是一种不好的做法?或者是吗?

json - 不能移出取消引用

javascript - 嵌套循环花费的时间太长,几乎使浏览器崩溃

angular - ionic 服务突然中止

css - (webpack 4) + sass-loader + mini-css-extract-plugin ,忽略 sass 依赖,输出目录中缺少生成的 css