热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VueCli3:定义的输出路径

如何解决《VueCli3:定义的输出路径》经验,为你挑选了1个好方法。

我需要配置最终构建的输出路径,如下所述:

我的Vue项目默认来自结构,但输出路径在此结构之外:

输出HTML文件是: ../ main/resourcess /

输出所有资产文件: ../ main/assets/[js/css/img]

在index.html文件中,查找资产的路径必须是"js/name.js"和类似的.

我目前的vue.config.js没有提供:

module.exports = {
    chainWebpack: cOnfig=> {
        config.module
            .rule('vue')
            .use('vue-loader')
            .tap(optiOns=> {
                return options;
            });
    },
    css: {
        sourceMap: true
    },


    baseUrl: '/',
    outputDir: '../main/resources/',
    assetsDir: '../main/assets/',
    runtimeCompiler: undefined,
    productionSourceMap: undefined,
    parallel: undefined,
    configureWebpack: {
        module: {
            rules: [
                {
                    test: /\.(png|jpg|gif)$/,
                    use: [
                        {
                            loader: 'file-loader',
                            options: {
                                outputPath: '../main/assets/img',
                                name: '../main/assets/img/[name].[ext]'
                            }
                        }
                    ]
                }
            ]
        }
    }
}

有人可以帮忙配置这个文件吗?谢谢!

tschaefermedia 亲切的问候

对不起,我忙于其他项目.现在回到VueJS.
更新:
我尝试了GIT帖子中的内容.我的vue.config.js文件现在看起来像这样:

const path = require('path');
module.exports = {
    css: {
        sourceMap: true
    },

    devServer: {
        proxy: {
            '/api': {
                target: 'http://localhost:8080',
                'changeOrigin': true,
                'secure': false
            }
        }
    },
    baseUrl: '',
    outputDir: '../main/resources/',
    assetsDir: '../main/assets/',
    chainWebpack: cOnfig=> {
        config.module
            .rule('vue')
            .use('vue-loader')
            .tap(optiOns=> {
                return options
            })
        config.module
            .rule('images')
            .test(/\.(png|jpe?g|gif|ico)(\?.*)?$/)
            .use('url-loader')
            .loader('url-loader')
            .options({
                name: path.join('../main/assets/', 'img/[name].[ext]')
            })
    }
}

现在一切正常,正如我想要的那样,但图像不会被复制到正确的文件夹中.
".../assets /"中我有css和js文件夹但没有img文件夹.在我的index.html文件旁边的".../ressources"中,我有这个文件夹.



1> Richard Mats..:

在我的构建中测试了问题之后,我认为您需要进行两项更改:

vue.config.js

module.exports = {
  ...
  outputDir: '../main/resources/',
  assetsDir: '../assets/',
  ...
}

忘记的WebPack插件

参考配置:assetsDir

资产目录

类型:字符串

默认值:''

一个目录(相对于outputDir),用于在其下嵌套生成的静态资产(js,css,img,字体)。

因此资产最终../main/resources/../assets/等于../main/assets/


项目中的图像位置

IMO(根据测试)的最佳位置/static是用于静态资源的旧CLI2文件夹。实际上,外部的任何文件夹src都可以。这样就可以按原样处理,而不是“打包”处理。

请参阅处理静态资产

“实际”静态资产 ...相比之下,Webpack根本不处理static /中的文件:它们直接使用相同的文件名直接复制到其最终目标位置。

请注意,它们确实会获得版本哈希(请参见下文)。

这提供了以下构建文件夹结构:

../main
  assets/
    css/
    fonts/
    images/
    js/
  resources/
    index.html

使用CLI 3时,该/static文件夹已更改为/public/static,但是如果将图像放在此处,则会在下创建一个额外的副本../main/resources/static

如果您希望使用此位置(保持标准状态),则可以使用中的postbuild脚本删除该副本package.json,例如npm run在Windows下使用,

package.json

../main
  assets/
    css/
    fonts/
    images/
    js/
  resources/
    index.html

图片参考

在源代码中,我发现相对图像引用可以正常工作。

例如,

import myPic from '../public/static/images/myPic.png'

被更改为

../assets/img/myPic.ec4d96e7.png

在内置的app.js中。

注意为版本控制添加的哈希。


服务构建

我注意到,您使用的文件夹结构不能与simple一起使用http-server,因为index.html位于main / resources中,并且该服务器无法从main / assets获取。

我想您的部署机制会解决这个问题吗?


推荐阅读
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • arcgis for js api 的outStatistics请求遇到的问题Error: Error performing query operation
    Error:Errorperformingqueryoperation这个问题在查询arcgisserver服务的时候可能经常会遇到,大部分时候可能都是因为数据量太大 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • uniapp开发H5解决跨域问题的两种代理方法
    本文介绍了uniapp开发H5解决跨域问题的两种代理方法,分别是在manifest.json文件和vue.config.js文件中设置代理。通过设置代理根域名和配置路径别名,可以实现H5页面的跨域访问。同时还介绍了如何开启内网穿透,让外网的人可以访问到本地调试的H5页面。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • express工程中的json调用方法
    本文介绍了在express工程中如何调用json数据,包括建立app.js文件、创建数据接口以及获取全部数据和typeid为1的数据的方法。 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • 如何优化Webpack打包后的代码分割
    本文介绍了如何通过优化Webpack的代码分割来减小打包后的文件大小。主要包括拆分业务逻辑代码和引入第三方包的代码、配置Webpack插件、异步代码的处理、代码分割重命名、配置vendors和cacheGroups等方面的内容。通过合理配置和优化,可以有效减小打包后的文件大小,提高应用的加载速度。 ... [详细]
  • go channel 缓冲区最大限制_Golang学习笔记之并发.协程(Goroutine)、信道(Channel)
    原文作者:学生黄哲来源:简书Go是并发语言,而不是并行语言。一、并发和并行的区别•并发(concurrency)是指一次处理大量事情的能力 ... [详细]
  • Android系统启动过程分析一、Android平台架构首先贴一张Android系统架构图方便理解整个Android架构,这可以让我们从整体上对整个启动流程有个大概认知。可以看出整 ... [详细]
  • 1、前端代码需要引入:element.min.cssvue.min.jselement.min.jsaxios.min.js  nuget里面可添加 ... [详细]
author-avatar
Yyao
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有