ruby-on-rails-6 - Rails (6.0.3.4) Webpacker (5.2.1) 包导入错误:`Can't import the named export from non EcmaScript module`
问题描述
我正在尝试将一个包Rails 6.0.3.4
导入到我的 Rails 6 项目中——我正在使用webpacker 5.2.1
gem。
- 安装包
yarn add @shopify/react-form
- 它被导入到文件中
import {useForm, useField} from '@shopify/react-form';
- 现在运行后
./bin/webpack-dev-server
我明白了:
ERROR in ./node_modules/@shopify/react-form/build/esm/validation/validator.mjs 35:25-32
Can't import the named export 'isEmpty' from non EcmaScript module (only default export is available)
还有更多相同的错误但文件名不同。
我在另一个问题上读到添加新规则webpack
可以解决问题,所以我按照webpacker
自述文件中的说明进行操作:
问题是我没有/config/webpack/base.js
,无论如何我创建并在rules
目录中创建了一个目录/config/webpack/
,所以我base.js
看起来像这样:
// /config/webpack/base.js
const { webpackConfig, merge } = require('@rails/webpacker')
const fixConfig = require('./rules/fix')
module.exports = merge(webpackConfig, fixConfig)
修复看起来像这样:
// /config/webpack/rules/fix.js
module.exports = {
module: {
rules: [
{
test: /\.mjs$/,
include: /node_modules/,
type: "javascript/auto"
}
]
}
}
我需要帮助/指导来解决这个问题。蒂亚!
解决方案
我设法修复了错误,这篇文章指导我弄清楚如何将新规则合并到 webpack 配置中。
这是现在的environment.js
样子:
// /config/webpack/environment.js
const { environment } = require('@rails/webpacker')
environment.config.merge({
module: {
rules: [
{
test: /\.mjs$/,
include: /node_modules/,
type: "javascript/auto"
}
]
}
})
module.exports = environment
之前是:
const { environment } = require('@rails/webpacker')
module.exports = environment
我最终删除了base.js
and fix.js
。
推荐阅读
- javascript - 用户从开始时间开始每 X 小时创建一次计划
- c# - iPad 无法读取文本文件
- html - 如何调整图像的高度?
- python - 从定义返回数据框时我遇到了一些问题
- c# - 如何在不停止 ASP.NET Core 中的 IIS 的情况下上传我的发布者文件?
- sql - 如何生成计数为零的合成组
- typescript - 使用 this.$parent.somePropOrMethod 和 this.$root.somePropOrMethod 时,类型“Vue”上不存在属性 X
- java - PDF 上的印地语字符串未正确解析
- amazon-web-services - 从 AWS ECS 中单独账户中的私有注册表中提取容器
- c# - 从代码 ⇒ IL 或 IL ⇒ 本机代码创建的引用在哪里