【NPM专栏】关于npm init和npx
npm init
我们在一些node项目创建的时候,可以经常看到这样的创建项目的方式:
那这个是怎么实现的呢?它其实相当于去读取create-{name}的npm包的bin的create-{name}进行执行:
1 2 3 4 5
| { "bin":{ "create-midway": "dist/index.js" } }
|
然后如果是内部私有npm包,一般带有scope,相当于npm init @xxx/yyy
, 则相当于执行了@xxx/create-${yyy}
这个包bin
的create-{yyy}
的命令:
1 2 3 4 5
| { "bin": { "create-yyy": "dist/index.js" } }
|
npx说明
另外,我们平常还会执行 npx yyy
,相当于执行了yyy
包里面 bin的yyy
命令
npx这边需要说明的是,它原理是去搞了一个临时目录,然后安装好后执行对应命令,每次执行完毕就删除了,所以比较常用,则可以安装个全局的进行执行,但这个好处就是每次都是最新版本。