前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >npm是如何执行scripts中命令的?

npm是如何执行scripts中命令的?

作者头像
lonelydawn
发布2022-09-07 15:31:13
7870
发布2022-09-07 15:31:13
举报

过去一直有一个疑问,为什么我在命令行运行 npm start,可以正常启动 webpack,而直接使用 craco start 不行?

后半句很好理解,直接使用 craco start 会从系统的环境变量 $PATH 中查找 craco,因为之前没有配置过所以找不到。但是, npm 为什么能执行呢?

直到看到同事的一句服务端编译 less 的代码

代码语言:javascript
复制
node node_modules/.bin/lessc x.less x.css

略微有了些概念,npm 应该是去去 node_modules 中的 .bin 中找到了 lessc 这个命令工具,而 craco 也应该是到这里来找命令工具了。

刚好看到一篇写的不咋对的热点博客,所以也来整理一下。

less 或 craco 这样的 npm 包自己的 package.json 中包含一句

代码语言:javascript
复制
"bin" : {

    "craco" : "./bin/craco.js"

},

在运行 npm install craco 时,npm 会检索到这项配置并将 craco 包中 /bin/craco.js 软链到 node_modules/.bin 中

]

之后再运行 npm start (craco start) 时,npm 会直接执行 node node_modules/.bin/craco start

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档