2015-05-09 12 views
11

Używam webpack do pakowania po stronie klienta i chcę go użyć do budowania biblioteki node/npm. Widziałem, że mogę określić cel jako node. Z doc,Pakietu sieci Web do pakietu kierowania na kod node.js

"node" Compile for usage in a node.js-like environment (use require to load chunks) 

Ale problem jest react.js jest dołączane do wyjścia kompilacji. Chcę, aby tylko moje pliki źródłowe i wszystkie zależności wymienione w package.json zostały uwzględnione. Mam określony reagują jak peerDependency, jak

"peerDependencies": { 
    "react": ">=0.13", 
    "react-tap-event-plugin": ">=0.1.3" 
    }, 

Staram się też definiowanie reagować w externals spodziewa może po prostu stworzyć symbol i nie zawierają sama biblioteka, ale nadal obejmuje react w skompilowanej wyjścia.

target: "node", 
    externals: [{ 
     'react' : 'React', 
    }] 

tak, czy istnieje sposób na wykorzystanie webpack do Bundle od serwera kodu boczny/węzła, ale również określić nie zwijaj niektóre z zależnościami (które mogą być zdefiniowane jako peerDependencies lub devDependencies)?

+1

W tobie 'webpack.config.js' dodaj' cel: 'węzeł'. –

Odpowiedz

15

James napisał na ten temat 3 częściową serię.

http://jlongster.com/Backend-Apps-with-Webpack--Part-I

po jego kodzie externals zostały ustawione jako

{ 'babel-core': 'commonjs babel-core', 
    'babel-loader': 'commonjs babel-loader', 
    classnames: 'commonjs classnames', 
    react: 'commonjs react', 
... 
} 

który działał świetnie.

+1

To już nie jest konieczne. Jak wspomniano przez @ rubens-mariuzzo, prosty "target:" node "" w twoim webpack.config.js powinien wystarczyć. –

Powiązane problemy