小tips:你不知道的 npm init

前言

在现代新建一个 JS 相关的项目往往都是从 package.json 文件开始的,不过这个文件里需要的字段实在是太多了,正常人都记不住,所以 npm 官方提供了 npm init 命令帮助我们快速初始化 package.json 文件。执行之后会有一个交互式的命令行让你输入需要的字段值,当然如果你想直接使用默认值,也可以使用 npm init -y 来超速初始化。

npx

随着技术的快速发展,发现初始化 package.json 已经无法满足大家的需求了,越来越多的项目需要进行整个项目的初始化。脚手架工具应运而生,除了有通用的脚手架工具 yeoman,sao 之外,很多项目也会开发针对自己项目的脚手架工具,例如 vue-cli,create-react-app 以及专门用来初始化 ThinkJS 项目的脚手架工具 think-cli等。运行这些工具需要先使用 npm install -g 全局安装这些模块之后才能正常运行。每次都执行这两部操作那其实是有点麻烦的,所以 npm@5.2.0 提供了 npx命令将安装运行两个步骤合二为一,直接执行 npx think-cli 会先安装 think-cli 模块然后执行 think-cli 命令,最终完成脚手架的启动。

npm init <initializer>

可能 npm 的维护者们都比较懒吧,他们发现这么执行还挺累的,所以在 npm@6.1.0 里增加了 npm init <initializer> 这种操作,简单来说就是你执行 npm init thinkjs 的话 npm 会补全模块名为 create-thinkjs 并执行 npx create-thinkjs

npm init thinkjs

# same as
npx create-thinkjs

npm initnpx 的执行基本是一致的,他们相对于直接执行全局命令来说比较大的优势就是能保证命令模块是最新版的,毕竟如果还要执行 npm update -g 的话又多了一部操作。

参考资料:《Create a project using the npm init initializer command》

相关文章

一准备工作umi为react的一个封装比较nice的脚手架。优点当然...
webpack在引入两个依赖的包时,可能需要使用shimming,意思是...
  Happypack (plugin)多线程使用loader编译文件treeshaki...
一目录结构├──build//构建相关├──config//配置相关├─...
接着第一节的demo现在我们尝试整合一些其他资源,比如图像,...
webpack的打包原理识别入口文件通过逐层识别模块依赖(Common...