2017-10-20 98 views
0

我有一個使用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 
    }) 
    ]) 
} 

回答

0

我更換了網址,裝載機文件加載程序。在構建項目時應該指向正確的路徑。您還可以更改文件結束與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 
    }) 
    ]) 
}