Webpack保存需要

时间:2017-10-16 09:57:16

标签: javascript webpack

我正在尝试使用webpack在js中有条件地导入内容。请考虑以下事项:

fetch.js

const findFetch = () => {
  if (window.process && window.process.electron) {
    // electron (requirement to use node-fetch here)
    return require('node-fetch')
  } else if (window.fetch) {
    // browser
    return fetch
  }
  // old browser
  return () => Promise.reject(
    new Error('Fetch api not available. Please update your browser!')
  )
}

export default findFetch()

现在我不希望任何http(以及与该依赖关系一起提供的其他节点模块)捆绑到我的客户端代码中。

有没有办法保留导入/需求?保留我的意思是不要乱用代码的那一部分,不要改变它,只是保持它原样?

1 个答案:

答案 0 :(得分:0)

您可以使用条目选项指定webpack.config.js中哪个软件包在哪个软件包中。

entry: {
  app: "./src/app.js",
  vendor: ["node-fetch", "more", "libraries", "go", "here"]
},
output: {
  filename: "[name].bundle.js",
  path: path.resolve(__dirname)
}
plugins: {
  new webpack.optimize.CommonsChunkPlugin("vendor")
}

上面的代码确保您获得两个捆绑包。一个名为vendor.bundle.js的包,其中包含 node-fetch 和您想要包含的其他库,以及一个包含其余库的包含app.bundle.js的包。