Как изменить имена чанков, сгенерированные VuePress - PullRequest
0 голосов
/ 11 января 2020

Я хочу использовать Vuepress для документов. Наша задача c должна быть 100% -ной c, и каждый контент является частным.

По деловым причинам мы должны настроить RBA C по маршрутам. Например, /foo доступен только для admin, в то время как /bar доступен для admin и employee.

Однако кажется, что выходные данные webpack не соответствуют авторизации на основе маршрута .

enter image description here

Все скомпилированные js файлы находятся в одном каталоге, assets/js. Я не могу применить политику обратного прокси на основе маршрута, например, потому что я не знаю, какие файлы принадлежат каким маршрутам, например, если 2.99194163.js для /foo или /bar. Чтобы узнать это, нужно прочитать все скомпилированные js файлы, что неприменимо.

Это происходит по умолчанию в конфигурации веб-пакетов Vuepress.

output: {
  filename: 'assets/js/[name].[chunkhash:8].js',
}

Можно ли организовать по маршрутам, как это?

assets/js
├── index
│   ├── app.0cb5ae60.js 
│   └── 10.059a7fe4.js
├── foo
│   ├── 11.62278c9d.js
│   ├── 12.9652ff3d.js
│   └── 13.c6c6b9fd.js
└── bar
    ├── 14.c8879eeb.js
    ├── 2.99194163.js
    ├── 3.7d54bf6f.js
    ├── 4.0c81bce7.js
    ├── 5.e47d5dbb.js
    ├── 6.004df3e0.js
    ├── 7.966197b8.js
    ├── 8.4bd54fba.js
    └── 9.78a40dc1.js

Заранее спасибо!

1 Ответ

0 голосов
/ 13 января 2020

Вы можете использовать плагин vuepress-plugin-named-chunks для изменения имени и пути js чанков, генерируемых VuePress для каждой страницы ...

  1. Установить плагин
  2. Изменить .vuepress\config.js
module.exports = {
  plugins: [
    [
      "named-chunks",
      {
        pageChunkName: function(page) {
          let chunkPath = page.path.substring(1) + page.key;
          // console.log(chunkPath);
          return chunkPath;
        }
      }
    ]
  ]
};

Внутренне он использует webpackChunkName "маги c комментарий"

Если ваш pageChunkName возвращает строку не только с именем файла, но и с путем, важно не включать ведущий sla sh - guide/readme.js будет работать, /guide/readme.js не будет .....

...