Как мне ждать кусок кода в конфигурации weback? - PullRequest
0 голосов
/ 01 января 2019

У меня есть асинхронная функция, которая возвращает набор веб-пакетов entries, я хотел бы использовать async / await для получения свойства entry из функции, но из-за webpack.config.js module.export простого объектаЯ не могу выполнить ожидание верхнего уровня и вернуть простой объект.

Вот что я имею в виду:

const myFunc = require('./something');
const entry = await myFunc(__dirname);
module.exports = {
    entry,
    "mode": "development",
    "output": {
        "path": __dirname+'/static',
        "filename": "[name].[chunkhash:8].js"
    }
}

Конечно, я понимаю, что ожидание верхнего уровня невозможно, однакоМне нужно обещание от module.export до export вместо этого простого объекта.Возможно ли это в веб-пакете?

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Вы можете попробовать использовать webpack 4. Я полагаю, что вы можете назначить асинхронную функцию, возвращающую объект json вам module.exports вместо простого объекта json.Попробуйте добавить приведенный ниже код в ваш webpack.config.js

Я использую webpack 4.1.1, и он отлично работает для меня.

const doAsync = async () => {
  const myFunc = require('./something');
  const entry = await myFunc(__dirname);
  return {
    entry,
    'mode': 'none',
    'output': {
        'path': __dirname + '/static',
        'filename': '[name]'
    }
  };
};
module.exports = doAsync;
0 голосов
/ 01 января 2019

Я имел дело с этим в UNIX следующим образом:

export ENTRY=$(yarn --silent ts-node ./riddance.run.ts ../LAST_STAND)
yarn webpack

и

const entry = JSON.parse(process.env.ENTRY);

module.exports = {
    entry,
    "mode": "none",
    "output": {
        "path": __dirname+'/static',
        "filename": "[name]"
    }
}
...