首页 > 解决方案 > 'createConsumer' 不是由 node_modules/@rails/actioncable/app/assets/javascripts/action_cable.js 导出的

问题描述

我正在尝试createConsumer从以下脚本中的 actioncable 导入。https://github.com/jonathan-s/sockpuppet/blob/stimulus/javascript/stimulus/consumer.js#L1

当我尝试使用 rollup.js 构建它时,它都失败并出现以下错误。

[!] Error: 'createConsumer' is not exported by 
node_modules/@rails/actioncable/app/assets/javascripts/action_cable.js, 
imported by javascript/stimulus/consumer.js

当我查看 node_modules 时,它看起来确实action_cable.js在导出createConsumer,所以我不确定这里出了什么问题。

标签: javascriptruby-on-railsrollupjs

解决方案


使错误消失的原因是将 commonjs 与命名导出一起使用。

plugins: [
    commonjs({
        namedExports: {
            "node_modules/@rails/actioncable/app/assets/javascripts/action_cable.js": ["createConsumer"]
        }
    }),
]

推荐阅读