Webpack vue cli服务生成--目标库作为库导入时会丢失图像路径
我按照这个创建了我的npm模块。My在src/assets文件夹中包含一个svg图像(hue cirle.svg) 使用Webpack vue cli服务生成--目标库作为库导入时会丢失图像路径,webpack,vue.js,vue-cli,Webpack,Vue.js,Vue Cli,我按照这个创建了我的npm模块。My在src/assets文件夹中包含一个svg图像(hue cirle.svg) 使用vue cli服务build--target lib--name构建时,svg图像捆绑在dist/img/hue-circle123456.svg下 现在,使用npm install--save安装模块时,路径仍然是src/img/hue-circle123456.svg,而它应该引用node_modules dist文件夹中的svg图像,而不是主Vue App src文件夹中
vue cli服务build--target lib--name构建时,svg图像捆绑在dist/img/hue-circle123456.svg
下
现在,使用npm install--save
安装模块时,路径仍然是src/img/hue-circle123456.svg
,而它应该引用node_modules dist文件夹中的svg图像,而不是主Vue App src文件夹中不存在的hue-circle123456.svg
图像
基本上,在使用我的模块的Vue项目中,svg图像路径是错误的。我试图添加~
,以强制webpack按照建议将其解释为模块依赖项,但它不起作用
最后,我放弃了,将svg嵌入到html模板中,正如您在中看到的那样。尽管如此,我还是问了这个问题,因为我找不到任何解决方案,我和其他人可能需要解决这个问题,以便在使用vue cli service build--target lib--name
命令构建的自定义模块中使用图像资源
谢谢你的帮助 以下是使用网页包解析路径的文档:
资产的路径可以如下解析,例如:
process.env.NODE_ENV == "production ? path.resolve(process.cwd(), "dist/assets") : path.resolve(__dirname, "src/assets");
制作:
process.cwd() // Where the application is running. You can pack it for example.
我有一个类似的问题,我目前的解决方案是将以下内容添加到vue.config.js
:
module.exports={
css:{
摘录:错
},
链接网页包:配置=>{
config.module
.规则(“图像”)
.use(“url加载程序”)
.loader(“url加载器”)
.tap(options=>Object.assign(options,{limit:Infinity}));
}
};
这将所有资产内联为base64
摘自:
编辑:
对于SVG,请尝试以下方法:
module.exports={
css:{
摘录:错
},
链接网页包:配置=>{
const svgRule=config.module.rule('svg')
svgRule.uses.clear()
斯夫格鲁
.test(/\.svg$/)
.use('svg-url-loader')//npm安装--保存dev svg-url-loader
.loader('svg-url-loader')
}
};
请记住,这远远不是最佳解决方案 我很惊讶还没有人回答这个问题:/I我认为alias
不会解决这个问题。当我在buildaslib之后检查bundle文件时。我发现我的图像是webpack.\uuuu require\uuuu
,路径是localhost:8080/xxx/my image
,但当我在project1
中使用lib作为依赖项时,我看到了图像请求,但没有用成功代码响应真实的图像数据200@St你是对的。但我相信你可以根据自己的需要调整它,它只是一个隐藏的网页。你是我的生命救星。