Я использую vue cli 3 и вот мой vue.config.js:

const path = require('path')
const webpack = require('webpack')
const publicDir = 'public'
const isProduction = process.env.NODE_ENV === 'production'
module.exports = {
  publicPath: isProduction ? './dist/' : '',
  outputDir: 'public/dist',
  indexPath: '../../resources/views/index.blade.php',
  filenameHashing: true,
  chainWebpack: config => {
    config
      .entry('app')
      .clear()
      .add('./resources/vue/main.js')
      .end()
    config.module
      .rule('graphql')
      .test(/\.gql$/)
      .use('graphql-tag/loader')
      .loader('graphql-tag/loader')
      .end()
  },
  configureWebpack: {
    plugins: [new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/)]
  }
}

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

Я не нашел никакой документации по этому вопросу.

2
talkhabi 19 Авг 2019 в 14:52

2 ответа

Лучший ответ

Вы можете сделать это в своем файле package.json. Вы можете добавить свой собственный скрипт или изменить существующий.

Например, взгляните на скрипт clean . Вы можете вызвать этот скрипт вручную или добавить его в другой скрипт. В этом примере он выполняется при выполнении сценария dev :

  "scripts": {
    "serve": "vue-cli-service serve",
    "watch": "vue-cli-service build --mode development --watch",
    "dev": "vue-cli-service --mode development build",
    "build": "vue-cli-service build && npm run clean",
    "lint": "vue-cli-service lint",
    "clean": "rm -rf ../public/dist"
  },
  ...

ПРИМЕЧАНИЕ : && заставляет их запускаться последовательно clean будет запускаться после build .

1
Andrew Vasilchuk 19 Авг 2019 в 18:44

Как насчет добавления скрипта postbuild:

  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "postbuild": "rm dist/<file-to-delete>", // <--- add this one
    "lint": "vue-cli-service lint",
    "test:e2e": "vue-cli-service test:e2e",
    "test:unit": "vue-cli-service test:unit"
  }
1
kenberkeley 16 Окт 2019 в 05:45