Как сохранить мой shebang на месте с помощью webpack?

есть ли способ заставить Webpack хранить #!/usr/bin/env node в верхней части моего файла?

Я пытаюсь связать CLI вместе с модулем... было немного сложно экспортировать мой index.js / cli.js отдельно, используя только один файл конфигурации... и сделать cli require index... я получил его работать...

Однако.. я не нашел способ сохранить #!/usr/bin/env node в верхней части моего файла cli, любые идеи?

в шортах webpack выводит такой файл:

/******/ (function(modules) { // webpackBootstrap
/******/    // The module cache
/******/    var installedModules = {};

/******/    // The require function
/******/    function __webpack_require__(moduleId) {

/******/        // Check if module is in cache
/******/        if(installedModules[moduleId])
/******/            return installedModules[moduleId].exports;
..............................................................

но мне нужно

#!/usr/bin/env node //<------ HEREEEE

/******/ (function(modules) { // webpackBootstrap
/******/    // The module cache
/******/    var installedModules = {};

/******/    // The require function
/******/    function __webpack_require__(moduleId) {

/******/        // Check if module is in cache
/******/        if(installedModules[moduleId])
/******/            return installedModules[moduleId].exports;

..............................................................

Ответ 1

Вы должны быть в состоянии использовать BannerPlugin с необработанным режимом для этого. С помощью этого плагина вы можете добавить любую строку в верхней части вашего пакета. При использовании необработанного режима он не будет переносить строку в комментарии.

В вашем файле webpack.config.js:

plugins: [
    new webpack.BannerPlugin({ banner: "#!/usr/bin/env node", raw: true }),
]