Spm client

先 review 下，不要合
这个文件修改是因为 require spm 会把所有文件都执行一遍，然后调用子进程时又执行了一遍。