【问题标题】:Can I use webpack on the client side without nodejs server?我可以在没有 nodejs 服务器的客户端上使用 webpack 吗?
【发布时间】:2015-12-06 01:58:51
【问题描述】:

我正在尝试构建一个网络应用程序,我想将所有 html、js 和 css 文件存储在 amazon s3 上,并通过 api 与 restful 服务器通信。

我正在尝试实现延迟加载,并可能使用反应路由器进行路由。似乎 webpack 有这个功能代码拆分,它的工作方式类似于延迟加载。

但是,我发现的所有教程和示例都涉及 webpack-dev-server,它是一个小型节点快速服务器。无论如何我可以在构建时生成包并将所有内容上传到 amazon s3 并实现类似于 Angular 的 ocLazyLoading 的东西吗?

【问题讨论】:

  • 你的目标是在开发过程中不使用nodejs吗?或者在生产中不需要节点就足够了?
  • 我的目标是将所有 html、js 和 css 等放在只能托管静态网页的 amazon s3 上。所以我想我可以在开发中使用节点。
  • 是的,我建议使用 node/webpack 作为构建管道,然后将静态文件复制到 S3

标签: node.js amazon-s3 reactjs webpack webpack-dev-server


【解决方案1】:

绝对可以创建一个静态捆绑 js 文件,您可以在不包含 webpack-dev-server 的生产代码中使用该文件。

请参阅 this example 作为参考(注意:我是此 repo 的所有者)。 webpack.prod.config.js 确实通过 node.js 使用 webpack 创建了一个生产就绪包文件,它本身不再需要 node.js。因此,您可以简单地将其作为一个简单的静态文件提供(在实时示例中完成)。

主要区别在于入口点在开发环境和生产环境中的编写方式。用于开发webpack-dev-server 正在使用

module.exports = {
    entry: [
        'webpack-dev-server/client?http://localhost:3000',
        'webpack/hot/only-dev-server',
        './src/index'
    ],
    // ...
}

在生产环境中你跳过webpack-dev-server和热重载部分

module.exports = {
    entry: [
        './src/index'
    ],
    // ...
}

如果您想将代码拆分为多个包,您可能需要了解如何定义 multiple entry points 并相应地链接文件。

【讨论】:

  • 谢谢!那么所有的 webpack 功能仍然可以正常工作吗?喜欢延迟加载(代码拆分)?
  • 当然。查看herehere 以获得详细的代码库。重要的部分是require.ensure(CommonJs)或require(AMD)。
猜你喜欢
  • 2021-08-07
  • 1970-01-01
  • 2011-03-10
  • 2021-03-14
  • 2015-07-06
  • 1970-01-01
  • 1970-01-01
  • 2010-10-02
  • 1970-01-01
相关资源
最近更新 更多