前言
问题
最近有个需求,需要将不编译的源码上传到npm私服供人使用;但是不编译的源码在原项目中配置了@/等别名,当在使用此源码node依赖的项目里编译运行时,会报找不到依赖中的用别名引用的模块的错:
Module not found: Error: Can't resolve '@/common/xxxx/xxx' in 'xxx/Desktop/program/xxx/node_modules/[依赖包名]/.../xxx'
环境信息
vue-cli5
踩的坑(无效方法)
先来讲一下尝试的各种无效的办法
1、配置别名--vue.config.js
在vue.config.js添加别名配置,为了不影响当前工程中的依赖关系,所以我把别名多加了一级目录比如@/common:
chainWebpack: config => {
config.resolve.alias
.set('@/common',path.resolve('node_modules/[包名]/xxx/common'));
},
//或者是
chainWebpack: config => {
config.resolve.alias
.set('@/common',path.resolve(__dirname+'/node_modules/[包名]/xxx/common'));
},
运行还是报同样的错,说明未生效,看来这里的配置别名不适用node_modules中的依赖