Webpack打包针对Node.js的代码

11

我使用webpack对客户端进行捆绑,并希望将其用于构建node/npm库。 我看到可以将目标指定为node。从文档中了解到,

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

但问题是react.js已经被编译输出包含了。我只希望我的源文件和package.json中列出的任何依赖项被包含进去。我已经将react指定为对等依赖项,例如:

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

我还尝试在externals中定义react,希望它只创建符号而不包含库本身,但它仍然会在编译输出中包含react

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

那么,有没有一种方法可以使用webpack对服务器端/Node代码进行打包,但同时指定不打包某些依赖项(这些依赖项可能被定义为peerDependenciesdevDependencies)?


1
在你的 webpack.config.js 文件中添加 target: 'node' - Rubens Mariuzzo
1个回答

15

詹姆斯已经写了一篇3部分的系列文章。

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

按照他的代码,externals 被设置成了:

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

效果很好。


1
这已经不再需要了。正如@rubens-mariuzzo所提到的,在你的webpack.config.js中简单地添加"target: 'node'"应该就可以解决问题。 - Fabricio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接