为了账号安全,请及时绑定邮箱和手机立即绑定

vue 项目webpack proxyTable只是用于开发环境吗?现在代码在开发环境不跨域,打包到线上竟然跨域了,怎么搞

vue 项目webpack proxyTable只是用于开发环境吗?现在代码在开发环境不跨域,打包到线上竟然跨域了,怎么搞

PHP
缥缈止盈 2019-03-11 20:05:19
vue 项目webpack proxyTable只是用于开发环境吗?现在代码在开发环境不跨域,打包到线上竟然跨域了,怎么搞 1 现在开发环境没有使用proxyTable解决跨域,是后台php解决的,2 在开发环境的时候没有跨域 ,npm run build 打包放到服务器上运行 ,接口就跨域了 这样可以在前端设置什么解决吗 ======================= let config = { env: 'development', baseUrl: 'http://apidev.211shouyintai.com/api' };export default config; const path = require('path');const os = require('os');const webpack = require('webpack');const ExtractTextPlugin = require('extract-text-webpack-plugin');const HappyPack = require('happypack');var happyThreadPool = HappyPack.ThreadPool({ size: os.cpus().length });function resolve (dir) { return path.join(__dirname, dir); }module.exports = { entry: { main: '@/main', 'vender-base': '@/vendors/vendors.base.js', 'vender-exten': '@/vendors/vendors.exten.js' }, output: { path: path.resolve(__dirname, '../dist/dist') }, module: { rules: [ { test: /\.vue$/, loader: 'vue-loader', options: { loaders: { css: 'vue-style-loader!css-loader', less: 'vue-style-loader!css-loader!less-loader' }, postLoaders: { html: 'babel-loader' } } }, { test: /iview\/.*?js$/, loader: 'happypack/loader?id=happybabel', exclude: /node_modules/ }, { test: /\.js$/, loader: 'happypack/loader?id=happybabel', exclude: /node_modules/ }, { test: /\.js[x]?$/, include: [resolve('src')], exclude: /node_modules/, loader: 'happypack/loader?id=happybabel' }, { test: /\.css$/, use: ExtractTextPlugin.extract({ use: ['css-loader?minimize', 'autoprefixer-loader'], fallback: 'style-loader' }) }, { test: /\.less$/, use: ExtractTextPlugin.extract({ use: ['css-loader?minimize','autoprefixer-loader', 'less-loader'], fallback: 'style-loader' }), }, { test: /\.(gif|jpg|png|woff|svg|eot|ttf)\??.*$/, loader: 'url-loader?limit=1024' }, { test: /\.(html|tpl)$/, loader: 'html-loader' } ] }, plugins: [ new HappyPack({ id: 'happybabel', loaders: ['babel-loader'], threadPool: happyThreadPool, verbose: true }) ], resolve: { extensions: ['.js', '.vue'], alias: { 'vue': 'vue/dist/vue.esm.js', '@': resolve('../src'), } } }; const webpack = require('webpack');const HtmlWebpackPlugin = require('html-webpack-plugin');const ExtractTextPlugin = require('extract-text-webpack-plugin');const CopyWebpackPlugin = require('copy-webpack-plugin');const merge = require('webpack-merge');const webpackBaseConfig = require('./webpack.base.config.js');const fs = require('fs');const package = require('../package.json'); module.exports = merge(webpackBaseConfig, { devtool: '#source-map', output: { publicPath: '/dist/', filename: '[name].js', chunkFilename: '[name].chunk.js' }, plugins: [ new ExtractTextPlugin({ filename: '[name].css', allChunks: true }), new webpack.optimize.CommonsChunkPlugin({ name: ['vender-exten', 'vender-base'], minChunks: Infinity }), new HtmlWebpackPlugin({ title: 'iView admin v' + package.version, filename: '../index.html', inject: false }), new CopyWebpackPlugin([ { from: 'src/views/main_components/theme_switch/theme' } ]) ] }); const webpack = require('webpack');const HtmlWebpackPlugin = require('html-webpack-plugin');const ExtractTextPlugin = require('extract-text-webpack-plugin');const CopyWebpackPlugin = require('copy-webpack-plugin');const cleanWebpackPlugin = require('clean-webpack-plugin');const UglifyJsParallelPlugin = require('webpack-uglify-parallel');const merge = require('webpack-merge');const webpackBaseConfig = require('./webpack.base.config.js');const os = require('os');const fs = require('fs');const path = require('path');const package = require('../package.json'); module.exports = merge(webpackBaseConfig, { output: { publicPath: 'http://pmy.211shouyintai.com/dist/', // 修改 https://iv...admin 这部分为你的服务器域名 filename: '[name].[hash].js', chunkFilename: '[name].[hash].chunk.js' }, plugins: [ new cleanWebpackPlugin(['dist/*'], { root: path.resolve(__dirname, '../') }), new ExtractTextPlugin({ filename: '[name].[hash].css', allChunks: true, }), new webpack.optimize.CommonsChunkPlugin({ // name: 'vendors', // filename: 'vendors.[hash].js' name: ['vender-exten', 'vender-base'], minChunks: Infinity }), new webpack.DefinePlugin({ 'process.env': { NODE_ENV: '"production"' } }), new webpack.optimize.UglifyJsPlugin({ compress: { warnings: false } }), // new UglifyJsParallelPlugin({ // workers: os.cpus().length, // mangle: true, // compressor: { // warnings: false, // drop_console: true, // drop_debugger: true // } // }), new CopyWebpackPlugin([ { from: 'td_icon.ico' }, { from: 'src/styles/fonts', to: 'fonts' }, { from: 'src/views/main_components/theme_switch/theme' } ]), new HtmlWebpackPlugin({ title: '胖蚂蚁Pro', favicon: './td_icon.ico', filename: '../index.html', template: '!!ejs-loader!./src/template/index.ejs', inject: false }) ] });
查看完整描述

1 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

单纯前端解决不了吧,我记得proxytable本身只是为了开发时使用的,他本身是处理了跨域的一些问题的。你在build之后就和他没关系了,相当于只是一个js去执行。
不知道你前端页面是用什么起的服务,如果是用的nginx的话,可以在里面做一个反向代理。在不就是通过服务端做CORS了。

查看完整回答
反对 回复 2019-03-18
  • 1 回答
  • 0 关注
  • 503 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信