最佳实践

中英双语
  • 除非您真的是认真的,否则不要以非零错误代码退出。除了卸载脚本,这将导致 npm 操作失败,并可能被回滚。如果故障很小或只会阻止某些可选功能,那么最好只打印警告并成功退出。
  • 尽量不要使用脚本来做 npm 可以为你做的事情。通读 package.json 以查看您可以通过适当地描述您的包来指定和启用的所有内容。一般来说,这将导致更健壮和一致的状态。
  • 检查环境以确定将东西放在哪里。例如,如果 npm_config_binroot 环境变量设置为 /home/user/bin,则不要尝试将可执行文件安装到 /usr/local/bin 中。用户可能出于某种原因这样设置它。
  • 不要在脚本命令前加上 "sudo"。如果出于某种原因需要 root 权限,那么它将因该错误而失败,并且用户将 sudo 有问题的 npm 命令。
  • 不要使用 install。使用 .gyp 文件进行编译,使用 prepare 进行其他任何操作。您几乎不必显式设置预安装或安装脚本。如果您这样做,请考虑是否有其他选择。installpreinstall 脚本的唯一有效用途是编译必须在目标架构上完成。
  • 无论调用 npm 时当前工作目录是什么,脚本都从包文件夹的根目录运行。如果您希望脚本根据您所在的子目录使用不同的行为,您可以使用 INIT_CWD 环境变量,它包含您在运行 npm run 时所在的完整路径。