2015-05-09 41 views
11

Tôi sử dụng webpack để nhóm phía máy khách và muốn sử dụng nó để xây dựng thư viện node/npm. Tôi thấy tôi có thể chỉ định mục tiêu là node cho việc này. Từ số doc,gói web để gói mã nhắm mục tiêu node.js

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

Nhưng vấn đề là react.js được đóng gói trong đầu ra biên dịch. Tôi chỉ muốn các tệp nguồn của tôi và bất kỳ phụ thuộc nào được liệt kê trong package.json để được bao gồm. Tôi đã xác định phản ứng như peerDependency, như

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

Tôi cũng thử Xác định phản ứng trong externals mong nó chỉ có thể tạo ra các biểu tượng và không bao gồm các thư viện riêng của mình, nhưng nó vẫn bao gồm react sản lượng biên soạn.

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

như vậy, là có một cách để sử dụng webpack bó bởi mã phía máy chủ/nút, mà còn để xác định không để gói một số phụ thuộc (có thể được định nghĩa là peerDependencies hoặc devDependencies)?

+1

Trong bạn 'webpack.config.js' thêm' target: 'node''. –

Trả lời

15

James đã viết một chuỗi 3 phần trên đó.

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

sau mã của mình, externals được thiết lập như là

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

mà làm việc tuyệt vời.

+1

Điều này không còn cần thiết nữa. Như đã đề cập bởi @ rubens-mariuzzo, một "target: 'node" đơn giản trong webpack.config.js của bạn nên thực hiện thủ thuật. –

Các vấn đề liên quan