Webpack - Копирование файлов в разработке и производстве - PullRequest
0 голосов
/ 12 декабря 2018

Я написал плагин, который делает что-то похожее на copy-webpack-plugin , но предоставляет некоторые расширенные функциональные возможности, которые мне нужны.По сути, он просто копирует файлы из src в dist и выполняет с ними некоторые операции.

Он отлично работает, когда я запускаю производственную сборку, но в моей сборке разработки, поскольку я использую devServerи все в памяти, это не работает.

Как я могу решить это?

1 Ответ

0 голосов
/ 12 декабря 2018

Как оказалось, решение довольно простое.Все, что вам нужно сделать, это использовать compliation.assets, чтобы добавить больше файлов, а не что-то ручное, как fs.writeFile.Это будет работать независимо от того, обслуживаете ли вы файлы из памяти или из файловой системы.

Например, приведенный ниже код создаст файл в path/to/file.ext с Hello World! в нем:

class MyCoolPlugin {
    apply(compiler) {
        compiler.hooks.emit.tapAsync('MyCoolPlugin', (compilation, done) => {
            compilation.assets['path/to/file.ext'] = {
                source: () => 'Hello World!', // The file's content
                size: () => 10 // Should be the byte size of the content
            };
            done();
        });
    }
}
...