2015-05-09 7 views
11

Ich benutze webpack für die Bündelung der Client-Seite und möchte es für den Aufbau von Knoten/npm-Bibliothek verwenden. Ich sah, dass ich das Ziel als node dafür angeben kann. Vom doc,webpack bündeln code targeting node.js

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

Aber das Problem ist react.js in der Kompilierung Ausgabe gebündelt wird. Ich möchte nur meine Quelldateien und alle Abhängigkeiten, die in package.json aufgeführt sind, enthalten. Ich habe reagieren als peerDependency angegeben, wie

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

Ich versuche auch definierende reagieren in externals erwartet, dass es vielleicht nur das Symbol erstellen und nicht gehören die Bibliothek selbst, aber es enthält noch react in kompilierte Ausgabe.

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

so gibt es eine Möglichkeit, zu verwenden, indem webpack Serverseite/node Code zu bündeln, sondern auch auf nicht angegeben was einige der Abhängigkeiten zu bündeln (die als peerDependencies oder devDependencies definiert werden können)?

+1

Fügen Sie 'webpack.config.js'' target: 'node' hinzu. –

Antwort

15

James hatte eine dreiteilige Serie darauf geschrieben.

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

seinen Code folgen, wurden externals als

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

die große gearbeitet.

+1

Dies ist nicht mehr notwendig. Wie von @ rubens-mariuzzo erwähnt, sollte ein einfacher "target: 'node'" in Ihrem webpack.config.js den Trick machen. –

Verwandte Themen