当尝试使用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-loader
或cache-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