Node.jspm2运维TypeScriptWebpack

我终于(可能)实现了本站的热更新……

其实 pm2 的 cluster + reload 并不难,难的是如何从 TS 项目编译出一个 JS 项目。

其实本来这也不算难,用 webpack-node-externals 去掉 node_modules 就行,但我这里后端项目用了前端项目的某些文件,导致 TS 定义可能会混杂,ts-loader 会报错中止编译。还好换了 awesome-typescript-loader,虽然依然报错,但能编译出能跑的东西。

另一个难点是,sequelize-typescript 编译之后不能从 model path 自动添加 model 了,需要手动添加……(可能是 cwd 变了,从而根本没有那些 model 文件了)。还好直接 ls | tee list.txt 然后用正则批量生成即可。

Colliot12/18/2017, 12:35:52 AM

之前都是用 ts-node 在跑,非常不可思议,重启要 1 分钟……

Colliot12/18/2017, 12:36:17 AM

pm2 的 reload 功能好像不是很稳,重启有错也能重启。或者说这其实是运行时错误,pm2 不把它当成重启失败。

Colliot1/4/2018, 10:13:36 AM

我觉得正确的方式应该是手动给一个重启成功的信号,至少不至于让开头初始化的部分就挂了……不过初始化挂了,和初始化成功但是每次请求都挂,似乎也没多大区别。

Colliot1/4/2018, 12:04:25 PM

Preview:

Cancel

Elsewhere

Colliot replied to qlbf 的博客真的支持 Kotlin 的高亮吗?

好吧,不行……这 PrismJS 貌似也是个菜鸡

Colliot replied to qlbf 的博客真的支持 Kotlin 的高亮吗?

让我们来试试高亮 Agda {-# OPTIONS --without-K --rewriting #-}

pen import lib.Basics pen import lib.types.Int pen import lib.types.Pi

odule lib.types.Group where

  • 1-approximation of groups without higher coherence conditions. ecord GroupStructure {i} (El : Type i) --(El-level : has-level 0 El) : Type i where constructor group-structure field ident : El inv : El → El comp : El → El → El unit-l : ∀ a → comp ident a == a assoc : ∀ a b c → comp (comp a b) c == comp a (comp b c) inv-l : ∀ a → (comp (inv a) a) == ident

    ⊙El : Ptd i ⊙El = ⊙[ El , ident ]

    private infix 80 _⊙_ _⊙_ = comp

    abstract inv-r : ∀ g → g ⊙ inv g == ident inv-r g = g ⊙ inv g =⟨ ! unit-l (g ⊙ inv g) ⟩ ident ⊙ (g ⊙ inv g) =⟨ ! inv-l (inv g) |in-ctx ⊙ (g ⊙ inv g) ⟩ (inv (inv g) ⊙ inv g) ⊙ (g ⊙ inv g) =⟨ assoc (inv (inv g)) (inv g) (g ⊙ inv g) ⟩ inv (inv g) ⊙ (inv g ⊙ (g ⊙ inv g)) =⟨ ! assoc (inv g) g (inv g) |in-ctx inv (inv g) ⊙ ⟩ inv (inv g) ⊙ ((inv g ⊙ g) ⊙ inv g) =⟨ inv-l g |in-ctx (λ h → inv (inv g) ⊙ (h ⊙ inv g)) ⟩ inv (inv g) ⊙ (ident ⊙ inv g) =⟨ unit-l (inv g) |in-ctx inv (inv g) ⊙_ ⟩ inv (inv g) ⊙ inv g =⟨ inv-l (inv g) ⟩ ident =∎

Colliot replied to qlbf 的博客真的支持 Kotlin 的高亮吗?

好吧,知乎的貌似也是个菜鸡……这篇专栏里的高亮也不对。

ice1000 replied to qlbf 的博客真的支持 Kotlin 的高亮吗?

我也找不到更好的高亮插件了,我稍微写复杂点它就没法parse了。 Jekyll 能用的高亮插件我记得的有两个,当初研究 Agda 的时候折腾了下,结果全都不支持 Agda 。 Python 写的那个被抛弃了,我现在用的是 Rouge 。

Colliot replied to qlbf 的博客真的支持 Kotlin 的高亮吗?

fun main(args: Array<String>) { val list = object : ArrayList<String>(), Cloneable { override fun clone(): Any { return super<ArrayList>.clone() } } System.out.println(list) run breaking@ { (0..20).forEach continuing@ { if (10 <= it) return@breaking println(it) } infix fun Int.+(int: Int) = this * int n Array<String>.main() { println(1 + 10) // 输出 10 println(1 + 10) // 输出 11 这些高亮在 qlbf 的博文里全部有问题。

Colliot replied to TeX 的源码到底在哪里?

正确的引用样式是什么?

ice1000 replied to TeX 的源码到底在哪里?

虎哥你这个quote的辣眼睛的两个引号什么时候可以弄掉啊。

ice1000 replied to TeX 的源码到底在哪里?

这么写渲染居然没有出问题。 在格上,Kleene 不动点定理(Kleene's fixed point theorem)的内容是: 如果 (L, sqsubseteq) 是一个完备格,并且函数 f : L to L 是连续的,那么有:<br/>

athit{lfp}(f) = mathit{sup}(K(bot))

Colliot replied to TeX 的源码到底在哪里?

我可能找到了,在这里。Web 语言写的,该怎么让它发挥作用呢?

ice1000 replied to 为什么这里的 MathJax 会闪烁,而 StackExchange 的不会?

肯定啊。双缓冲是个很简单的东西嘛。。。