同一 index.html 线上线下自动引入不同版本 css 和 js。

2017-01-13 07:31:44 +08:00
 happyjohann

6182 次点击
所在节点    JavaScript
37 条回复
ericls
2017-01-13 07:50:00 +08:00
通过环境变量配合 webpack 的 replace 插件
fucker
2017-01-13 09:06:02 +08:00
我有办法
spritevan
2017-01-13 09:19:25 +08:00
if (module.hot) {
// dev code
}
justyy
2017-01-13 09:22:57 +08:00
楼主 字写得很漂亮
lwbjing
2017-01-13 09:32:35 +08:00
naomhan
2017-01-13 09:39:06 +08:00
感觉最简单的就是 switchhosts 了 代码都不要改 线上内网各布一套
ragnaroks
2017-01-13 10:41:28 +08:00
index 硬是看成了 mdx,
纯前端的情况下,可能得依靠一个 load.js 来做判断了
learnshare
2017-01-13 11:09:23 +08:00
Gulp 写两个编译任务
airyland
2017-01-13 12:36:44 +08:00
需求不复杂,用 webpack 可破,两个 env 不同配置即可,开发时 dev 配置一套,要上线构建时另一套。
happyjohann
2017-01-13 14:24:48 +08:00
@ericls 能给个教程链接不?我对前端开发工具还不熟悉。
happyjohann
2017-01-13 14:26:24 +08:00
@spritevan 这个是用在什么环境下的,纯前端应该没办法直接用未定义的 module 吧,能解释一下么?
happyjohann
2017-01-13 14:26:56 +08:00
@justyy 这并不是重点,想法来了,所以就胡乱写了
happyjohann
2017-01-13 14:27:58 +08:00
@ragnaroks load.js 具体内容如何写,能赐教不?谢谢
happyjohann
2017-01-13 14:28:41 +08:00
@learnshare 有参考教程不?谢谢
happyjohann
2017-01-13 14:29:50 +08:00
@airyland 能给个参考教程不?对这个工具还不熟。谢谢
ragnaroks
2017-01-13 14:40:19 +08:00
假设你线下是 localhost,那 host 就会是 http://localhost/xxxx,线上是 http://domain.com/xxx
直接判断一下就在 js 里面加载不同的资源
spritevan
2017-01-13 14:43:50 +08:00
@happyjohann module.hot 是和 @airyland 一样依靠 webpack
差异在于他通过不同的配置文件来配置构建流程
module.hot 是用来判断是否开启热更新的状态,通常等价于测试环境 ;-)

原理很简单,也可以通过声明其他环境变量(比如检测域名)来标识开发/生产环境
jarlyyn
2017-01-13 14:47:02 +08:00
nginx 做个 sub_filter 就能搞定的事情。

怎么这么复杂了。
happyjohann
2017-01-13 14:58:23 +08:00
@ragnaroks 我本地用的是 project.static.domain 类似的 URL ,不想写成 URL based , case based 代码。谢谢建议啊😄
happyjohann
2017-01-13 15:00:54 +08:00
@spritevan 嗯,和通过 module 判断是前端还是 node 的通用库一样。谢谢。看来又要学新东西了, webpack 之前只听说没用过

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/334264

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX