add npm support