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)
        }
    
  • 相关阅读:
    86. Partition List
    2. Add Two Numbers
    55. Jump Game
    70. Climbing Stairs
    53. Maximum Subarray
    64. Minimum Path Sum
    122. Best Time to Buy and Sell Stock II
    以场景为中心的产品设计方法
    那些产品经理犯过最大的错
    Axure教程:如何使用动态面板?动态面板功能详解
  • 原文地址:https://www.cnblogs.com/ysk123/p/11547777.html
Copyright © 2011-2022 走看看