React-Rails 6 - 无法导入 node_modules 包
React-Rails 6 - Unable to import node_modules package
我正在尝试在我的 react-rails 项目中使用 npm 包,但似乎无法成功导入它。我先运行以下:
yarn add @mapbox/mapbox-gl-draw
然后,我尝试了以下两种导入方式:
import * as MapboxDraw from '@mapbox/mapbox-gl-draw';
const MapboxDraw = require('@mapbox/mapbox/gl-draw');
然而,这两个都产生了完全相同的错误:
Module not found: Error: Can't resolve '@mapbox/mapbox-gl-draw' in '/opt/app/myrailsapp/app/javascript/src/scenes/myscene.jsx'
如何在 react-rails 项目中正确使用标准 npm 包?我也尝试将上述语句移动到我的 application.js
包中,但无济于事
问题最终是由于使用容器造成的,并且只在我的一个容器上本地 运行ning yarn install
。我有以下 docker-compose.yaml
:
services:
myapp:
# ...
build:
context: myapp/.
dockerfile: Dockerfile.development
webpacker:
# ...
build:
context: myapp/.
dockerfile: Dockerfile.development
当我尝试安装软件包时,我只 运行
docker-compose exec myapp yarn install @mapbox/mapbox-gl-draw
这安装很好,但 仅 用于该容器。我还需要 运行 在 webpacker
容器上。看起来好像包安装正确,而实际上 webpacker 容器不包含包。
由于安装节点模块是我的 Dockerfile 的一部分,因此修复是 运行 docker-compose build
我正在尝试在我的 react-rails 项目中使用 npm 包,但似乎无法成功导入它。我先运行以下:
yarn add @mapbox/mapbox-gl-draw
然后,我尝试了以下两种导入方式:
import * as MapboxDraw from '@mapbox/mapbox-gl-draw';
const MapboxDraw = require('@mapbox/mapbox/gl-draw');
然而,这两个都产生了完全相同的错误:
Module not found: Error: Can't resolve '@mapbox/mapbox-gl-draw' in '/opt/app/myrailsapp/app/javascript/src/scenes/myscene.jsx'
如何在 react-rails 项目中正确使用标准 npm 包?我也尝试将上述语句移动到我的 application.js
包中,但无济于事
问题最终是由于使用容器造成的,并且只在我的一个容器上本地 运行ning yarn install
。我有以下 docker-compose.yaml
:
services:
myapp:
# ...
build:
context: myapp/.
dockerfile: Dockerfile.development
webpacker:
# ...
build:
context: myapp/.
dockerfile: Dockerfile.development
当我尝试安装软件包时,我只 运行
docker-compose exec myapp yarn install @mapbox/mapbox-gl-draw
这安装很好,但 仅 用于该容器。我还需要 运行 在 webpacker
容器上。看起来好像包安装正确,而实际上 webpacker 容器不包含包。
由于安装节点模块是我的 Dockerfile 的一部分,因此修复是 运行 docker-compose build