我有一个使用绝对导入而不是相对导入(https://medium.com/@ktruong008/absolute-imports-with-create-react-app-4338fbca7e3d)的react应用程序。在我的本地机器上,一切正常工作,但是当我试图在码头上构建时,它就失败了。
我有一个.env文件,其中包含NODE_PATH='./'和create app的配置方式,它的webpack配置将自动获取‘.env’文件并读取NODE_PATH环境变量,然后该变量可以用于绝对导入,因此像src/components/NavBar这样的东西就可以解析了。
但是,当我试图构建码头,它没有解决,而是抛出这个错误。
Cannot find module: 'src/components/NavBar'. Make sure this package is installed.
You can install this package by running: yarn add src/components/NavBar.如有任何指示,将不胜感激。
今天是我第一次和码头工人合作所以我是个菜鸟。
附加信息:
我使用一个Dockerfile和一个docker-come.yml文件。
我使用react重新连线(https://github.com/timarney/react-app-rewired),它基本上可以帮助你覆盖创建-反应-应用webpack吐露,而不弹出。
Dockerfile
FROM node:10.15.1
ENV NODE_ENV production
RUN mkdir /usr/invoicing
COPY . /usr/invoicing
WORKDIR /usr/invoicing
RUN npm install
RUN npm run builddocker-compose.yml
version: '3.5'
services:
web:
container_name: invoice-frontend
build:
context: .
dockerfile: Dockerfile
command: npm start
ports:
- '3000:3000'
networks:
- frontend
environment:
- NODE_ENV=production
networks:
frontend:
driver: 'bridge'发布于 2019-02-08 11:48:23
我找到了问题和解决办法:
显然,我把一个文件夹命名为navBar,当我将它重命名为NavBar时,Git没有检测到文件夹名称的变化,也没有对它做任何事情。因此,在我的本地机器(即Mac)上,它显示了NavBar,但是在使用git提交的Gitlab上,它仍然显示为navBar和cos Docker在Linux上运行,并且Linux是区分大小写的,构建失败了。
这也解释了为什么构建在我的本地机器上工作。Mac的文件系统hfplus不区分大小写,因此没有发现问题。
要解决重命名问题,我使用了git mv命令。这里有一个警告;如果您想将一个foldername重命名为folderName (即更改大小写),比如Mac这样的不区分大小写的文件系统,那么您将得到一个错误:fatal: renaming ‘foldername’ failed: Invalid argument.
要成功地重命名文件夹,请使用以下命令。git mv foldername tempname && git mv tempname folderName。这将流程分为两个步骤:第一,将文件夹名重命名为tempname,将重命名tempname重命名为folderName。
希望这能帮到别人
https://stackoverflow.com/questions/54467342
复制相似问题