Различные vue.config.js для npm run serve и npm run build - PullRequest
1 голос
/ 25 апреля 2019

Я переопределяю конфигурацию веб-пакета, используя vue.config.js:

const BundleTracker = require("webpack-bundle-tracker");

module.exports = {
  publicPath: 'http://0.0.0.0:8080',
  outputDir: './dist/',

  chainWebpack: config => {

    config.optimization
      .splitChunks(false)

    config
      .plugin('BundleTracker')
      .use(BundleTracker, [{ filename: './webpack-stats.json' }])

    config.resolve.alias
      .set('__STATIC__', 'static')

    config.devServer
      .public('http://0.0.0.0:8080')
      .host('0.0.0.0')
      .port(8080)
      .hotOnly(true)
      .watchOptions({ poll: 1000 })
      .https(false)
      .headers({ "Access-Control-Allow-Origin": ["*"] })
  }
};

Плагин webpack-bundle-tracker генерирует файл с именем webpack-stats.json:

{
  "status": "done",
  "publicPath": "http://0.0.0.0:8080/",
  "chunks": {
    "app": [
      {
        "name": "app.js",
        "publicPath": "http://0.0.0.0:8080/app.js",
        "path": "/Users/me/dev/vue-app/dist/app.js"
      }
    ]
  }
}

Моя проблема в том, что в зависимости от того, нахожусь ли я в разработке или в производстве, я хочу, чтобы путь к файлу был другим.

  • Когда я запускаю npm run serve: сгенерированный путь должен быть http://0.0.0.0:8080/app.js (чтобы файл обслуживался npm, и я мог иметь горячую перезагрузку и т. Д.)
  • Когда я запускаю npm run build: сгенерированный путь должен быть http://0.0.0.0:8000/static/app.js (чтобы django мог обслуживать файл. Обратите внимание на номер порта 8000, а не 8080)

Так что мне интересно, есть ли способ для vue.config.js иметь 2 версии, одна из которых будет использоваться serve, другая - build.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...