2016-11-23 10 views
9

jest jakiś sposób, aby ustawić Webpack zachować #!/usr/bin/env node na górze mojego pliku?Jak zachować mój shebang w miejscu za pomocą pakietu internetowego?

Próbuję powiązać CLI z modułem ... Wydzielanie mojego index.js/cli.js osobno przy użyciu jednego pliku konfiguracyjnego było trochę trudne ... i sprawienie, że cli wymaga indeksu ... mam to działa ...

Jednak .. nie znalazłem sposobu, aby zatrzymać #!/usr/bin/env node na górze mojego pliku cli, jakieś pomysły?

w krótkich spodenkach WebPack wysyła plik tak:

/******/ (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; 
.............................................................. 

ale to, co jest mi potrzebne

#!/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; 

.............................................................. 
+0

Hi Raf, wielkiej pracy na uzyskanie eksport wymaga rzecz dzieje. Teraz, dlaczego myślisz, że Webpack usuwa Shebanga? Pokaż nam jakiś kod. –

+0

węzeł '#!/Usr/bin/env' jest używany jako skrót dla' węzła cli.js', więc mogę wywołać mój skrypt tak, jakby był binarny w wierszu poleceń ... jednak bootpack sieciowy czyści wszystko ... potrzebował, aby pierwsza linia zawierała '#!/usr/bin/env node' w przeciwnym razie nie będzie działać ... –

Odpowiedz

11

Powinieneś być w stanie korzystać z trybu surowego BannerPlugin dla tego produktu. Dzięki tej wtyczce możesz dodać dowolny ciąg na górze swojego pakietu. Używając trybu surowego, nie zawinie łańcucha w komentarzu.

W pliku webpack.config.js:

plugins: [ 
    new webpack.BannerPlugin('#!/usr/bin/env node', { raw: true }); 
] 
+3

Idealnie ... nie wiedziałem o tej wtyczce ... działało idealnie .. tylko mała uwaga na temat składni (webpack 2) jej '' 'new webpack.BannerPlugin ({banner:" #!/usr/bin/env node ", raw: true});' '' –

+0

Nice! Żyj i ucz się :-D –

+3

Ten interfejs API wydaje się być przestarzały; wymagana linia dla Webpack 2.2.1 to 'new webpack.BannerPlugin ({banner: '#!/usr/bin/env node', raw: true})' – LINKIWI

Powiązane problemy