跑npm scripts的方式是什么

蜗牛 互联网技术资讯 2023-03-14 59 0

这篇文章主要介绍了跑npm scripts的方式是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇跑npm scripts的方式是什么文章都会有所收获,下面我们一起来看看吧。

每个前端项目都有 npm scripts,我们会用 npm scripts 来组织编译、打包、lint 等任务。

这些命令行工具的 package.json 里都会有个 bin 字段,来声明有哪些命令:

跑npm scripts的方式是什么  npm 第1张

npm install 这个包以后,就会放到 node_modules/.bin 目录下:

跑npm scripts的方式是什么  npm 第2张

这样我们就可以通过 node ./node_modules/.bin/xx 来跑不同的工具了。

我们也可以用 npx 来跑,比如 npx xx,它的作用就是执行 node_modules/.bin 下的本地命令,如果没有的话会从 npm 下载然后执行。

当然,最常用的还是放到 npm scripts 里:

跑npm scripts的方式是什么  npm 第3张

这样就直接 npm run xxx 跑就行了。

npm scripts 本质上还是用 node 来跑这些 script 代码,所以调试他们和调试其他 node 代码没啥区别。

也就是可以这样跑:

在 .vscode/launch.json 的调试文件里,选择 node 的 launch program:

跑npm scripts的方式是什么  npm 第4张

用 node 执行 node_modules/.bin 下的文件,传入参数即可:

跑npm scripts的方式是什么  npm 第5张

其实还有更简单的方式,VSCode Debugger 对 npm scripts 调试的场景做了封装,可以直接选择 npm 类型的调试配置:

跑npm scripts的方式是什么  npm 第6张

直接指定运行的命令即可:

跑npm scripts的方式是什么  npm 第7张

比如我们就用这个 create-react-app 创建的 react 项目来尝试下 npm scripts 的调试:

先去 node_modules/.bin 下这个文件里打个断点:

跑npm scripts的方式是什么  npm 第8张

然后点击 debug 启动:

跑npm scripts的方式是什么  npm 第9张

你会发现会执行 scripts 下的 start 模块:

跑npm scripts的方式是什么  npm 第10张

我们再去 start 下打个断点:

代码执行到这里断住:

跑npm scripts的方式是什么  npm 第11张

这个 config 就是 webpack 的配置:

跑npm scripts的方式是什么  npm 第12张

再往下走,会发现启动了一个 server:

跑npm scripts的方式是什么  npm 第13张

我们在 server 启动的回调函数里打个断点,看看浏览器是怎么打开的:

跑npm scripts的方式是什么  npm 第14张

点击 step into 进入这个断点,然后单步执行,会走到这样的代码:

依次通过 osascript 来启动这些浏览器,启动失败的话,try catch 里直接忽略了:

跑npm scripts的方式是什么  npm 第15张

这些浏览器 hover 上去就可以看到:

跑npm scripts的方式是什么  npm 第16张

释放断点,你就会发现浏览器打开了

这样,我们不就梳理了一遍 react-scripts start 的流程么?

总结一下就是这样的:

  • 根据输入的 start 命令,执行 scripts/start 模块

  • 根据配置,创建 webpack 的 Compiler 对象

  • 创建 WebpackDevServer

  • server 启动之后,启动浏览器打开 url

  • 打开 url 的实现就是通过 osascripts 依次尝试那些浏览器

这样调试完一遍,我们就对 npm run start 有了更深入的认识。

而且,调试的方式跑 script 和直接命令行 npm run start 没啥区别。

要说区别,唯一的区别可能就是这个:

默认调试模式下,输出的内容会在 Debug Console 面板显示:

跑npm scripts的方式是什么  npm 第17张

但这个也可以改:

跑npm scripts的方式是什么  npm 第18张

可以切换成 integratedTerminal,那就会输出在 terminal 了:

跑npm scripts的方式是什么  npm 第19张

这样就和平时 npm run start 执行没了任何区别,而且还可以断点调试,它不香么?

我们再来看个例子,比如 vue cli 创建的 vue 项目,在 vue.config.js 里可以改 webpack 配置:

跑npm scripts的方式是什么  npm 第20张

但如果你想知道默认的配置是啥呢?console.log 么?

console.log 打印大对象可不是个好主意,它是这样的:

跑npm scripts的方式是什么  npm 第21张

有的同学说用 JSON.stringify,那个更难看,特别长的一串。

如果你会了调试 npm scripts 呢?

你就可以加一个 npm 类型的调试配置:

跑npm scripts的方式是什么  npm 第22张

然后打个断点,debug 来跑:

跑npm scripts的方式是什么  npm 第23张

关于“跑npm scripts的方式是什么”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“跑npm scripts的方式是什么”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注蜗牛博客行业资讯频道。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram