zoukankan      html  css  js  c++  java
  • webpack打包如何统一js和css中图片资源路径

    目前项目应用的是vue-cli,自行修改了部分配置.三个环境的情况跟你差不多,测试/生产环境的层级比你还深。
    先说下修改了哪些配置
    1-build/utils.js下的cssLoaders内的generateLoaders方法内部的

        // Extract CSS when that option is specified// (which is the case during production build)if (options.extract) {
              return ExtractTextPlugin.extract({
                use: loaders,
                fallback: 'vue-style-loader',
                publicPath: '../../'//此处修改是矫正iview的font等文件夹打包路径错误
              })
            } else {
              return ['vue-style-loader'].concat(loaders)
            }
    

    2-webpack.base.conf.js下的module对象内的rules针对图片类型的配置

              {
                test: /.(png|jpe?g|gif|svg)(?.*)?$/,
                loader: 'url-loader',
                options: {
                  limit: 1024,
                  name: utils.assetsPath('img/[folder]/[name].[ext]')
                  // [folder]/ 是为了保留项目组件文件夹内部资源文件夹
                  // 在打包后在img文件夹里面对应生成相同的文件夹,方便维护
                  // 另外取消了图片的hash
                }
              },
    

    3-config/index.js
    dev的配置就不说了,改了端口,偶尔会修改下默认启动的lolocalhost用于移动调试
    主要是build下的

        assetsPublicPath:'./',//改为./
    

    目前这套配置运行良好.图片那里的修改你可以照样引用原本的cli配置.我这是根据项目需求变动的.
    assetsPath如下

        exports.assetsPath = function(_path) {
          const assetsSubDirectory = process.env.NODE_ENV === 'production'
            ? config.build.assetsSubDirectory
            : config.dev.assetsSubDirectory
        
          returnpath.posix.join(assetsSubDirectory, _path)
        }
    
  • 相关阅读:
    本博客停止更新说明
    JavaScript备忘录(3)——正则表达式
    JavaScript备忘录(2)——闭包
    JavaScript备忘录(1)——内置类型
    CSS布局:Float布局过程与老生常谈的三栏布局
    地图投影简明笔记
    Three.js源码阅读笔记-5
    js中 set, map区别
    Package.json详解
    node.js 中的package.json文件怎么创建?
  • 原文地址:https://www.cnblogs.com/ysk123/p/11547777.html
Copyright © 2011-2022 走看看