我试图在我的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'我如何正确地使用一个标准的npm包在一个反应-rails项目中?我还尝试将上述语句移到我的application.js包中,但没有结果。
发布于 2020-07-23 19:30:47
问题的最终原因是使用容器,并且只在我的一个容器上本地运行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
https://stackoverflow.com/questions/63057670
复制相似问题