编译失败。找不到模块:错误:无法解析“ / path / to / file / using / package”中的“ package-name” vue / vue-loader / cache-loader

时间:2019-07-27 17:37:59

标签: docker webpack vuejs2 node-modules yarnpkg

当尝试使用yarn add(使用webpack构建,在docker容器上运行)安装新的节点程序包时,我遇到了一个奇怪的问题。当我安装软件包并将其导入组件时,出现以下错误:

Failed to compile.

./src/components/tests/OrderForm.vue?vue&type=script&lang=js& (./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/tests/OrderForm.vue?vue&type=script&lang=js&)
Module not found: Error: Can't resolve 'hello-bar' in '/opt/front-end/src/components/tests'

我尝试在线搜索了一段时间,但发现的最接近的内容是在这里(特别是该问题中的最后两个注释,它们具有相同的错误输出):https://github.com/vuejs/vue-cli/issues/1419

奇怪的是,如果我还卸载了先前存在的软件包,Vue仍会加载该软件包的所有内容,就像我根本没有卸载过一样!我不知道这是否是我需要更改的vue-loadercache-loader设置?

我的webpack配置有:

module.exports = {
    entry: [
        '@babel/polyfill',
        './src/main.js',
    ],
    optimization: {
        splitChunks: {
            chunks: 'all',
        },
    },
    devtool: process.env.NODE_ENV === 'production' ? '#source-map' : '#eval-source-map',
};

更新:

这是我的docker-compose.yml文件:

version: '3.1'
services:
  front-end:
    build: ../etalon-front-end
    env_file: .frontend.env
    volumes:
      - ../etalon-front-end:/opt/front-end
      - /opt/front-end/node_modules
    ports:
      - "8080:8080"
  mysql:
    build: ./mariadb
    env_file: .mysql.env
    volumes:
      - ./mariadb/backup.sql:/docker-entrypoint-initdb.d/dump.sql
      - /var/lib/mysql
    ports:
      - "3306:3306"
  api:
    build: ../etalon-node
    env_file: .backend.env
    volumes:
      - ../etalon-node:/opt/node
      - /opt/node/node_modules
    ports:
      - "3000:3000"
    depends_on:
      - mysql

然后我用docker-compose up

0 个答案:

没有答案