目前,当我在docker中运行服务器时,我得到了这个错误:
import {dataSchema} from "./data-model.js"
> ^^^^^^^^^^
SyntaxError: The requested module './data-model.js' does not provide an export named 'dataSchema'
尽管他这样说:
module.exports = {
dataSchema,
}
导入如下:
import {dataSchema} from "./data-model.js"
我的dockerfile看起来像这样:
FROM node:12
WORKDIR /usr/src/server
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD ["npm", "start"]
导入dataSchema的文件与导出dataSchema的文件在同一目录级别。
目前,我正在尝试console.log()dataSchema,我假设这是由于我的dockerfile的问题而无法工作。我怀疑的下一件事是,我应该复制data-model.js文件,但我不明白为什么我的dockerfile中的COPY . .没有这样做。
1条答案
按热度按时间mzsu5hc01#
好吧,这不是一个从过去的爆炸,几乎embaressed如何少,我知道只是5个月前!
我认为问题在于,当你把一个文件转换成Docker镜像时,它只能访问你指定的镜像。所以你需要指定一个文件夹,或者“级别”,不管你想叫它们什么。
例如,你可能有一个名为
index.js
的文件,在一个名为app
的文件夹下执行逻辑,你也可能有另一个名为funcs.js
的文件,在那里你存储逻辑并导出到index.js
。通过在你的文件夹app
中创建一个docker镜像,它将可以访问index.js
和funcs.js
。如果您简化了工作目录的组织方式,它也会有所帮助。
这就是我最终使用的,即使现在我知道它不是最好的,但它对我很有效: