webpack babel, как скопировать перенесенный файл, если я не использую import / require - PullRequest
2 голосов
/ 30 января 2020

В моем проекте есть файл с именем test.js

. Я нигде не импортирую / не требую его, что означает, что мой веб-пакет не будет вызывать babel-loader для этого js файла.

Вопрос: я хочу переместить тест. js в папку / dist, но как скомпилированный / перенесенный. Что лучше для этого делать?

Что я пробовал: Я пытался использовать copy-webpack-plugin и использовать его параметры преобразования перед копированием файла, но я не могу ' Кажется, я не могу найти хороший пакет Babel.

{
    from: 'test.js',
        to: '/dist/test.js',
            transform(content, path) {
        //what do I write here? 
    },
}

1 Ответ

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

Самый простой подход, о котором я мог подумать, - это использовать несколько точек входа, таких как:

{
    entry: {
        a: "./your-main-stuff",
        b: "./your-single-file",
    },
    output: {
        path: path.join(__dirname, "dist"),
        filename: "[name].js"
    }
}

, которые создадут ваш a.js основной комплект и b.js файл в папке __dirname/dist, которые будут перенесены. Вы использовали соответствующий загрузчик (и).

И из документации copy-webpack-plugin * раздел :

webpack-copy-plugin не предназначен для копирования файлов генерируется из процесса сборки; скорее это копирование файлов, которые уже существуют в дереве исходных текстов, как часть процесса сборки.

, поэтому кажется трудным (если возможно) заставить его перемещать переносимые файлы.

Обновление . Если вы хотите выводить файлы в разные папки без изменения папки src, понадобятся дополнительные инструменты. Для вашего случая (всего 1 файл) я написал бы простой скрипт и добавил его в пакет. json секция скрипта в сочетании с вызовом webpack, например:

"scripts": {
     "dev": "webpack && babel path-to-script.js --out-file path-to-script-compiled.js"
 }
...