Как скопировать файл *. html в папку / dist при использовании vue -cli-service build --target lib? - PullRequest
0 голосов
/ 15 апреля 2020

Хотя я явно не эксперт по веб-пакетам, я обычно выясняю / выясняю, что мне нужно изменить, чтобы добиться того, что мне нужно. Тем не менее, я потерял более одного дня на этом, хотя это кажется довольно простым:

Я хочу добавить index.html в сборку после сборки, скопировав ее из папки.

Я попытался добавить это к configureWebpack, в vue.config.js:

plugins: [
  new CopyPlugin([{
    from: 'deploy',
    to: '/',
    force: true,
    copyUnmodified: true
  }])
]

(единственный файл в папке deploy это index.html).

Я также пробовал различные версии chainWebpack, в основном выбранные из обсуждений на github, пытаясь подключиться к таким плагинам, как html, move-index и copy. Тем не менее, большая часть того, что я нашел на github, ломает сборку для меня.

Даже простые попытки, когда я просто пытаюсь нажать, а консоль, похоже, не работают:

chainWebpack: config => {
  config
    .plugin('html')
    .tap(args => {
      console.log(args);
      return args;
    });
},

вывод:

Building for production as library (commonjs,umd,umd-min)...[]
ERROR  TypeError: Cannot read property '__expression' of undefined`
...
at module.exports.toConfig (D:\sgn\www\_g\berwow\BERWoW\Client\RecommenderV2\node_modules\webpack-chain\src\Config.js:129:40)

Что я понял до сих пор:

  • CopyPlugin либо не работает, либо имеет исключение для .html файлов.
  • Есть как минимум два плагина: (move-index & html), которые, вероятно, мешают моей копии. Я не понял, как сделать sh мое изменение в конце очереди.

Я также попытался с test.html, и я также попытался поместить другое расширение в мой файл .txt и перезаписывает его при копировании обратно в .html. В большинстве случаев я сталкиваюсь с ошибками.

Есть ли относительно простой способ подключиться к команде vue-cli-serve build и просто скопировать index.html в папку?

Я использую команду построения:

vue-cli-service build --target lib --name SomeName --inline-css --inline-vue src/main.ts

Обратите внимание, что это сборка --target lib, которая не выводит index.html в папку dist, но demo.html. Поэтому я бы посоветовал протестировать любое решение на основе --target lib сборки, поскольку оно явно отличается от обычных сборок.

Вот вывод vue inspect: https://jsfiddle.net/websiter/rkh5ecvd/embedded/js/dark/#JavaScript
и вот текущее содержимое моего vue.config.js: https://jsfiddle.net/websiter/fou3y4zc/embedded/js/dark/#JavaScript, где configWebpack и chainWebpack - это попытки обратиться / заглянуть в вышеуказанную проблему.

I ' м, используя @vue/cli 4.2.3 и vue 2.6.11 с webpack 4.42.1

1 Ответ

0 голосов
/ 15 апреля 2020

Я нашел способ обойти это, просто запустив npm i copyfiles -D и добавив этот бит в скрипт build:

 && copyfiles -f ./deploy/* dist/Recommender

Это не правильный ответ на проблему, это способ обойти Это. Но это работает:).

Все еще интересует, как это можно правильно связать со скриптом сборки веб-пакета.

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