vuetify webpack简单 - npm运行构建 - 图像不被复制到/ dist/

vuetify webpack简单 - npm运行构建 - 图像不被复制到/ dist/

问题描述:

我有一个使用vuetify webpack-simple的vuetify项目。在该项目中,我使用了v-parallax标记,每个图像的src绑定到标记和数据对象中的图像路径。这些图像位于src> assets>图像中。当项目在开发服务器上运行时,图像会显示,但是当我构建项目时,图像不会被复制到dist文件夹。我想我必须配置文件加载器以适合我的项目?值得注意的是,我有两个图像被复制到dist文件夹。这些图像不在v视差标签中。如果可以的话请帮忙。vuetify webpack简单 - npm运行构建 - 图像不被复制到/ dist/

谢谢

<section> 
    <v-parallax :src="about.whiskey"> 
     <v-layout column align-left justify-center> 
      <h1 class="beige">{‌{ about.mission.header }}</h1> 
      <h6 class="beige">{‌{ about.mission.subheader }}</h6> 
     </v-layout> 
    </v-parallax> 
</section> 
export default { 
    data() { 
     return { 
      about: { 
       whiskey: '../../assets/images/bf-whiskey-glass.jpg', 
       whiskeys: '../../assets/images/three-whiskeys.jpg', 
       metrics: '../../assets/images/metrics.jpg', 
<section> 
    <v-parallax :src="about.whiskeys"> 
     <v-layout column align-right justify-center> 
      <h1 class="beige text-sm-right">{‌{ about.solution.title }}</h1> 
     </v-layout> 
    </v-parallax> 
</section> 
<section> 
    <v-parallax :src="about.metrics"> 
     <v-layout column align-left justify-center> 
      <h1 class="beige">{‌{ about.press.title }}</h1> 
     </v-layout> 
    </v-parallax> 
</section> 



=========================================================================== 

var path = require('path') 
var webpack = require('webpack') 

module.exports = { 
    entry: './src/main.js', 
    output: { 
    path: path.resolve(__dirname, './dist'), 
    publicPath: '/dist/', 
    filename: 'build.js' 
    }, 
    resolve: { 
    extensions: ['.js', '.vue'], 
    alias: { 
     'vue$': 'vue/dist/vue.esm.js', 
     'public': path.resolve(__dirname, './public') 
    } 
    }, 
    module: { 
    rules: [ 
     { 
     test: /\.vue$/, 
     loader: 'vue-loader', 
     options: { 
      loaders: { 
      } 
      // other vue-loader options go here 
     } 
     }, 
     { 
     test: /\.js$/, 
     loader: 'babel-loader', 
     exclude: /node_modul 
     }, 
     { 
     test: /\.(png|jpg|gif|svg)$/, 
      // use: [ 
      //  { 
      //   loader: 'url-loader', 
      //   options: { 
      //    limit: 8192 
      //   } 
      //  } 
      // ] 
     loader: 'file-loader', 
     options: { 
      objectAssign: 'Object.assign' 
     } 
     }, 
     { 
     test: /\.styl$/, 
     loader: ['style-loader', 'css-loader', 'stylus-loader'] 
     } 
    ] 
    }, 
    devServer: { 
    historyApiFallback: true, 
    noInfo: true 
    }, 
    performance: { 
    hints: false 
    }, 
    devtool: '#eval-source-map' 
} 

if (process.env.NODE_ENV === 'production') { 
    module.exports.devtool = '#source-map' 
    // http://vue-loader.vuejs.org/en/workflow/production.html 
    module.exports.plugins = (module.exports.plugins || []).concat([ 
    new webpack.DefinePlugin({ 
     'process.env': { 
     NODE_ENV: '"production"' 
     } 
    }), 
    new webpack.optimize.UglifyJsPlugin({ 
     sourceMap: true, 
     compress: { 
     warnings: false 
     } 
    }), 
    new webpack.LoaderOptionsPlugin({ 
     minimize: true 
    }) 
    ]) 
} 

我更换了网址,装载机文件加载程序。在构建项目时应该指向正确的路径。您还可以更改文件结束与outputPath选项,outputPath: '/assets/images/'将输出图像进行dist/assets/images/

{ 
    test: /\.(jpe?g|png|gif|svg)$/i, 
    use: [ 
     { 
     loader: 'file-loader', 
     options: { 
      name: '[name].[ext]', 
      outputPath: '/assets/images/' 
     } 
     } 
    ] 
    }, 

完全上下文

var path = require('path') 
var webpack = require('webpack') 

module.exports = { 
    entry: './src/main.js', 
    output: { 
    path: path.resolve(__dirname, './dist'), 
    publicPath: '/dist/', 
    filename: 'build.js' 
    }, 
    resolve: { 
    alias: { 
     'public': path.resolve(__dirname, './public') 
    } 
    }, 
    module: { 
    rules: [ 
     { 
     test: /\.vue$/, 
     loader: 'vue-loader', 
     options: { 
      // vue-loader options go here 
     } 
     }, 
     { 
     test: /\.(jpe?g|png|gif|svg)$/i, 
     use: [ 
      { 
      loader: 'file-loader', 
      options: { 
       name: '[name].[ext]', 
       outputPath: '/assets/images/' 
      } 
      } 
     ] 
     }, 
     { 
     test: /\.js$/, 
     loader: 'buble-loader', 
     exclude: /node_modules/, 
     options: { 
      objectAssign: 'Object.assign' 
     } 
     }, 
     { 
     test: /\.styl$/, 
     loader: ['style-loader', 'css-loader', 'stylus-loader'] 
     } 
    ] 
    }, 
    devServer: { 
    historyApiFallback: true, 
    noInfo: true 
    }, 
    devtool: '#eval-source-map', 
    performance: false 
} 

if (process.env.NODE_ENV === 'production') { 
    module.exports.devtool = '#source-map' 
    // http://vue-loader.vuejs.org/en/workflow/production.html 
    module.exports.plugins = (module.exports.plugins || []).concat([ 
    new webpack.DefinePlugin({ 
     'process.env': { 
     NODE_ENV: '"production"' 
     } 
    }), 
    new webpack.optimize.UglifyJsPlugin({ 
     compress: { 
     warnings: false 
     } 
    }), 
    new webpack.LoaderOptionsPlugin({ 
     minimize: true 
    }) 
    ]) 
}