Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webpack vue cli服务生成--目标库作为库导入时会丢失图像路径_Webpack_Vue.js_Vue Cli - Fatal编程技术网

Webpack vue cli服务生成--目标库作为库导入时会丢失图像路径

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文件夹中

我按照这个创建了我的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文件夹中不存在的
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你是对的。但我相信你可以根据自己的需要调整它,它只是一个隐藏的网页。你是我的生命救星。