解决 webpack-dev-server 不能使用 IP 访问
· 预计阅读时间:3 分钟
note
webpack-dev-server 不能使用 IP 访问
1、获取ip
const os = require('os'); function getNetworkIp() { let needHost = ''; // 打开的host try { // 获得网络接口列表 let network = os.networkInterfaces(); let alias = network['WLAN']; console.log(network['WLAN']); for (let i = 0; i < alias.length; i++) { if (alias[i]['family'] === 'IPv4' && alias[i]['address'] !== '127.0.0.1' && !alias[i]['internal']) { needHost = alias[i]['address']; } } } catch (e) { needHost = 'localhost'; } return needHost;}
2、添加到config中
host: getNetworkIp(),
3、完整配置
'use strict'// Template version: 1.2.4// see http://vuejs-templates.github.io/webpack for documentation.
const path = require('path')
const os = require('os'); function getNetworkIp() { let needHost = ''; // 打开的host try { // 获得网络接口列表 let network = os.networkInterfaces(); let alias = network['WLAN']; console.log(network['WLAN']); for (let i = 0; i < alias.length; i++) { if (alias[i]['family'] === 'IPv4' && alias[i]['address'] !== '127.0.0.1' && !alias[i]['internal']) { needHost = alias[i]['address']; } } } catch (e) { needHost = 'localhost'; } return needHost;}module.exports = { dev: {
// Paths assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: { '/api': { target: '', // 你接口的域名 // target: '', // 你接口的域名 secure: false, // 如果是https接口,需要配置这个参数 changeOrigin: true // 如果接口跨域,需要进行这个参数配置 } },
// Various Dev Server settings host: getNetworkIp(), // can be overwritten by process.env.HOST port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined autoOpenBrowser: false, errorOverlay: true, notifyOnErrors: true, poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
// Use Eslint Loader? // If true, your code will be linted during bundling and // linting errors and warnings will be shown in the console. useEslint: true, // If true, eslint errors and warnings will also be shown in the error overlay // in the browser. showEslintErrorsInOverlay: false,
/** * Source Maps */
// https://webpack.js.org/configuration/devtool/#development devtool: 'eval-source-map',
// If you have problems debugging vue-files in devtools, // set this to false - it *may* help // https://vue-loader.vuejs.org/en/options.html#cachebusting cacheBusting: true,
// CSS Sourcemaps off by default because relative paths are "buggy" // with this option, according to the CSS-Loader README // (https://github.com/webpack/css-loader#sourcemaps) // In our experience, they generally work as expected, // just be aware of this issue when enabling this option. cssSourceMap: false, },
build: { // Template for index.html index: path.resolve(__dirname, '../dist/index.html'),
// Paths assetsRoot: path.resolve(__dirname, '../dist'), assetsSubDirectory: 'static', assetsPublicPath: '',
/** * Source Maps */
productionSourceMap: true, // https://webpack.js.org/configuration/devtool/#production devtool: '#source-map',
// Run the build command with an extra argument to // View the bundle analyzer report after build finishes: // `npm run build --report` // Set to `true` or `false` to always turn it on or off bundleAnalyzerReport: process.env.npm_config_report }}