2015-05-09 17 views
11

İstemci tarafını paketlemek için webpack kullanıyorum ve düğüm/npm kitaplığı oluşturmak için kullanmak istiyorum. Bunun için hedefimi node olarak belirleyebileceğimi gördüm. doc,webpack paket kodu hedefleme node.js

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

Ama itibaren sorun react.js derleme çıktıda paketlenmiş olmasıdır. Sadece benim kaynak dosyalarının ve package.json listelenen bağımlılıkların dahil edilmesini istiyorum. Ben

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

Ben de belirleyici denemek sadece kütüphane kendisi dahil sembol oluşturmak ve olmayabilir bekliyor externals tepki gibi peerDependency olarak tepki belirtildi, ancak yine de derlenmiş çıktıda react içerir var.

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

nedenle, sunucu tarafında/düğüm kodu ile bir araya getirmek için webpack kullanmak için bir yolu yoktur, fakat, aynı zamanda (peerDependencies veya devDependencies olarak tanımlanabilir) bazı bağımlılıklarının paketlemek için değil belirlemek için?

+1

Webpack.config.js ifadesinde 'target: 'node' ifadesini ekleyin. –

cevap

15

James 3 parçalık bir dizi yazmıştı. Onun kod aşağıdaki

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

, externals büyük çalıştı

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

olarak belirlendi.

+1

Artık buna gerek yok. @ Rubens-mariuzzo tarafından belirtildiği gibi, webpack.config.js dosyanızdaki basit bir "hedef: 'node'" numarası hile yapmalıdır. –