Nuxt (и Webpack): Как отделить один файл JS для повторного использования внешним приложением? - PullRequest
0 голосов
/ 07 октября 2019

Я наткнулся на несколько страниц об импорте внешних файлов в проект Nuxt, но я пытаюсь сделать наоборот:

У меня есть два сайта или приложения: Сайт A и Сайт B. Сайт А является основным, созданным с использованием Nuxt. Сайт B - это простой сайт со статическими страницами, не использующий Nuxt или Vue.

На сайте A есть файл JavaScript, скажем, его путь равен /lib/common.js. Я широко использую его на сайте A. И я также хочу использовать его на сайте B.

Однако, когда я делаю yarn generate на сайте A, все мои JS-файлы, включая common.js, объединяются вфайлы чанков JavaScript, и каждый файл имеет имя с хэшем содержимого файла. Например, /lib/common.js, /lib/util.js связывают как /dist/_nuxt/05443d2eb25fc282bbea.js, а /lib/user.js связывают как /dist/_nuxt/1326d0fc90870f9f4ca4.js.

Это означает:

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

Могу ли я сказать Nuxt или, скорее всего, Webpack, выделить /lib/common.js в свой пакет и затем сохранить его как /dist/_nuxt/lib/common.js вместо хеша, чтобы имя файла было болеепредсказуемы?

1 Ответ

1 голос
/ 07 октября 2019

Вам потребуется создать отдельную конфигурацию веб-пакета для этого отдельного файла, чтобы достичь желаемого результата, так как поддерживается только одна выходная конфигурация на файл конфигурации [0].

[0] https://github.com/webpack/docs/wiki/configuration#output

Пример конфигурации общей библиотеки common.lib.config.js

var path = require('path');

module.exports = {
  entry: './lib/common.js',
  output: {
    path: path.resolve(__dirname, 'dist/_nuxt/lib'),
    filename: 'common.js'
  }
};

И соберите ее с webpack --config common.lib.config.js

...