我能想出解释问题的最好方法是举个例子:
假设我有一个带服务器端渲染的小型单页应用程序。在客户端,新页面请求使用XHR解析,但在服务器上我想直接运行服务器端解析器。
前端的组件在数据对象上调用getter,例如:Data.page.get()
,它可以轮询服务器或返回本地存储的值。所以我希望webpack打包相关的客户端代码。但我想指向服务器上的一个不同的Data对象,该对象调用服务器用来解析XHR请求的任何逻辑,无论是db调用还是文件系统调用等等。
目前我已获得var Data = require(./data)
获取服务器逻辑。有没有办法告诉webpack'嘿,不要使用./data
这里使用./data-client
代替?或者我会以某种方式倒退这个?
这似乎是一个非常简单的概念,但我对javascript和编程一般来说还是一个新手,对于最好的方法,我有点难过。
或者我应该像webpack一样处理节点脚本:can webpack output separate script and module files for browser and node?
我目前正在使用webpack 1,但很高兴使用webpack 2来解决问题。
答案 0 :(得分:0)
结果很简单。
Webpack解析具有扩展优先级的模块: 1).webpack.js 2).web.js 3).js
所以在我的情况下require('./data') will resolve to
data.js with node, and so long as I have a
data.web.js`它将解析为webpack中的那个。
至少我的理解。