首页 > 解决方案 > Svelte Rollup [export name] 未由 node_modules/ 导出

问题描述

我正在尝试从连字符中导入一个模块,如下所示:import { hyphenateHTMLSync } from "hyphen/fr";在 Svelte 模块的脚本标记中,但我Error: 'hyphenateHTMLSync' is not exported by node_modules/hyphen/fr/index.js从汇总中获得。

问题中的模块文件如下所示:

node_modules/连​​字符/fr/index.js

module.exports = require("../export-contract.js")(
    require("../patterns/fr.js")
);

node_modules/连​​字符/export-contract.js

var createHyphenator = require("./hyphen.js");

module.exports = function (patterns) {
  return {
    hyphenate: createHyphenator(patterns, { async: true }),
    hyphenateHTML: createHyphenator(patterns, { async: true, html: true }),
    hyphenateHTMLSync: createHyphenator(patterns, { html: true }),
    hyphenateSync: createHyphenator(patterns),
    patterns: patterns
  };
};

hyphen.js 包含创建连字符的功能。

我对 Rollup、Svelte 甚至 Node 的了解还不够,不知道如何解决这个问题。

标签: javascriptnode.jssvelterollup

解决方案


Rollup 需要额外的插件 (@rollup/plugin-node-resolve@rollup/plugin-commonjs) 来处理 CommonJS 模块,如此所述。

这里给出了一个使用这两个插件的非常基本的汇总示例配置。

在您的特定用例中,如果您在使用基本配置时仍然遇到问题,您可能需要深入研究 commonjs 插件的dynamicRequireTargets选项。


推荐阅读