首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从 vue-cli 源码中,我发现了27行读取 json 文件有趣的 npm 包

同时我之前看到了vue-cli 源码 里有 read-pkg 这个包。源码仅27行,非常值得我们学习。 阅读本文,你将学到: 1. 如何学习调试源码 2....环境准备 3.1 克隆 # 推荐克隆我的项目,保证与文章同步 git clone https://github.com/lxchuan12/read-pkg-analysis.git # npm i -...如果模块里面还有一个数据文件 data.txt,那么就可以用下面的代码,获取这个数据文件的路径。...等等 read-pkg 源码[23] 整体而言相对比较简单,但是也有很多可以学习深挖的学习的知识点。 作为一个 npm 包,拥有完善的测试用例。...学 Node.js 可以多找找简单的 npm 包学习。比直接看官方文档有趣多了。不懂的就去查官方文档。查的多了,自然常用的就熟练了。

3.9K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    这还是我最熟悉的package.json吗?

    原创@前端司南 前言 在上一篇npm init @vitejs/app的背后,仅是npm CLI的冰山一角[1]中,有提到我复习npm主要是从两个大方向来入手,所以这篇继续来讲讲package.json...npm 的配置还是挺多的,具体可以参考package.json官方文档[2]。通读了文档之后,我略过了一些基础的配置项,总结了一些我认为比较有用的配置项。 ?...scripts scripts也基本上每天都用了,但是它的钩子脚本你用过吗?如果没有用过,可以试试,在组织脚本流程时非常好用!...config 通过config配置的参数xxx,可以在脚本中通过npm_package_config_xxx 的形式引用,比如port。...让“调包侠”将package-a的依赖提升到自己的node_modules中,这样可以在“调包侠”和package-a都需要同一个依赖(比如vue)时,避免重复安装。这常见于开发组件或者库。

    51130

    这还是我最熟悉的package.json吗?

    CLI的冰山一角[1]中,有提到我复习npm主要是从两个大方向来入手,所以这篇继续来讲讲package.json这部分知识,经过这轮复习,也发现了自己的很多不足,之前把常用的命令和配置玩熟了,却没关心...npm 的配置还是挺多的,具体可以参考package.json官方文档[2]。通读了文档之后,我略过了一些基础的配置项,总结了一些我认为比较有用的配置项。...scripts scripts也基本上每天都用了,但是它的钩子脚本你用过吗?如果没有用过,可以试试,在组织脚本流程时非常好用!...config 通过config配置的参数xxx,可以在脚本中通过npm_package_config_xxx 的形式引用,比如port。...让“调包侠”将package-a的依赖提升到自己的node_modules中,这样可以在“调包侠”和package-a都需要同一个依赖(比如vue)时,避免重复安装。这常见于开发组件或者库。

    43610

    你真的了解package.json吗?

    如何在 npm 上发布二进制文件? 主要介绍如何将二进制文件发布到npm上。 然后,在写这系列文章时,发现有些操作需要用到package.json中的属性。...❞ 2. package.json 中关键字段 创建package.json 我们可以使用 npm init 命令在任意我们想创建前端项目的文件夹中创建一个 package.json 文件。...这使得脚本可以作为可执行文件直接运行,而不必在命令行中显式调用Node.js。 ❞ 案例分析 还记得f_cli的npm版本吗。...中另一个「功能性元数据」 ❞ scripts 属性是一个包含我们可以使用 npm CLI 运行的脚本命令的「字典」。...使用 npm cli 安装软件包时(npm install xxx@1.0.1),会将其下载到我们的 node_modules/ 文件夹中,并将添加到我们的依赖项属性中,并注明软件包的名称(xxx)和安装的版本

    24810

    你真的了解package.json吗?

    如何在 npm 上发布二进制文件? 主要介绍如何将二进制文件发布到npm上。 然后,在写这系列文章时,发现有些操作需要用到package.json中的属性。...2. package.json 中关键字段 创建package.json 我们可以使用 npm init 命令在任意我们想创建前端项目的文件夹中创建一个 package.json 文件。...这使得脚本可以作为可执行文件直接运行,而不必在命令行中显式调用Node.js。 案例分析 还记得f_cli的npm版本吗。...中另一个功能性元数据 scripts 属性是一个包含我们可以使用 npm CLI 运行的脚本命令的字典。...使用 npm cli 安装软件包时(npm install xxx@1.0.1),会将其下载到我们的 node_modules/ 文件夹中,并将添加到我们的依赖项属性中,并注明软件包的名称(xxx)和安装的版本

    12310

    npm init @vitejsapp的背后,仅是npm CLI的冰山一角

    就比如说一个用 vite 创建 app 的命令npm init @vitejs/app,很多人就懵了,“npm init不是用来创建package.json文件的吗?”...最后我也是以思维导图的形式,把自己的一些学习所得简单记录下来。 ? 经过这几天的学习,我发现我学习npm的两个大方向是npm CLI和package.json。...在npm run时,我们可以调用一些特殊路径下的可执行文件或脚本,这些路径包括环境变量PATH定义的路径,也包括当前项目node_modules中的./bin。...scripts. npm version 这个命令也是值得掌握的,从语义上看,npm version会修改package.json中的version字段,用来管理包的版本号。...你可以选择移除整个已发布的包,也可以针对性地下架某个版本。 npm pack 将package打包成 tgz 格式。

    1.8K40

    前端包管理工具与配置项

    我们可以回想 Jquery 时代, 前端在开发项目是什么样的? JS功能: 需要什么插件,去百度搜寻各种插件 ,然后将插件放置到项目目录下,然后在页面中引入js路径,使用插件功能实现需求。...增加 package.json 文件,这个文件中存放本项目及项目的依赖和版本信息,这样我们就可以一目了然的了解本项目用到了什么,都是什么版本的,不用多处寻找。...package.json的步骤 当你为你的模块安装一个依赖模块时,正常情况下你得先安装他们(在模块根目录下npm install module-name),然后连同版本号手动将他们添加到模块配置文件package.json...执行的脚本配置在package.json中的scripts对象。...的依赖包 npm i -g xxx #运行 package.json 中 scripts 下的命令 npm run xxx # 将当前模块发布到 npmjs.com,需要先登录 插件发布到

    52910

    手把手教你写一个脚手架(二)

    它们都是项目管理的一种方式,multirepo 就是将不同的项目放在不同的 git 仓库维护,而 monorepo 将多个项目放在同一个 git 仓库中维护。...message 验证脚本 和项目无关 不需关注 │─lerna.json |─package.json monorepo 改造过程 全局安装 lerna npm install -g lerna 创建项目...--scope=@mvc/cli 改造成 monorepo-repo 后的脚手架功能和第二版没有区别,只是将插件相关的代码独立成一个单独的 repo,后续可以将插件单独发布到 npm。...每当执行npm run,就会自动新建一个 Shell,在这个 Shell 里面执行指定的脚本命令。因此,只要是 Shell(一般是 Bash)可以运行的命令,就可以写在 npm 脚本里面。...() // 下载依赖 await pm.install() 上面的代码就是新增的逻辑,在用户选择完需要的插件后,将这些插件写入到 pkg 对象,然后生成 package.json 文件,再执行 npm

    72620

    三面面试官:运行 npm run xxx 的时候发生了什么?

    我(心想,简单啊): 首先,DNS 解析,将域名解析成 IP 地址,然后 TCP 连接,TCP 三次握手... 面试官:停停,我问的不是从URL输入到页面展现到底发生什么?...不服输的我,赶紧回拨了面试官的电话号码。 我:喂,面试官,您好,我已经找到答案了,可以麻烦您再听一下吗? 面试官:嗯,可以啊,请讲。...我(窃喜,这个我们刚刚也讨论了):我们可以直接在新建的vue项目里面搜索vue-cli-service [image.png] 可以看到,它存在项目最外层的package-lock.json文件中 从...package-lock.json 中可知,当我们npm i 整个新建的vue项目的时候,npm 将 bin/vue-cli-service.js 作为 bin 声明了。...然后这个脚本会使用 node 去运行vue-cli-service.js这个 js 文件 由于 node 中可以使用一系列系统相关的 api ,所以在这个 js 中可以做很多事情,例如读取并分析运行这条命令的目录下的文件

    1.5K30

    如何在 npm 上发布二进制文件?

    然后,有些同学说,既然cli都有了,但是下载二进制文件很麻烦。最好是将f_cli发布到npm上。毕竟,在前端开发中,npm大家都熟悉。 所以,今天我们就来讲讲「如何将二进制文件发布到npm」。...构建&发布目标npm项目 我们的目标是- 将build后的二进制文件放置到npm包中,然后通过node进行下载安装。 如果将所有平台的二进制放到一个npm是极其耗费流量的。...postinstall 脚本 如果在 package.json 中包含一个名为 postinstall 的脚本,则该脚本将在包安装后「立即执行」,即使它是作为安装包安装的一种依赖。...postinstall 脚本也可以被禁用,并且可能会出现更多问题,因为通常建议禁用它们,因为它们容易受到攻击。 ❝为了最大限度地提高成功的可能性,我们将两种方式都融合进主包中。...❞ bin 是 package.json 文件中的一个字段,用于定义「将包安装为全局命令时的可执行文件」。 bin 字段是一个对象,其中键是要创建的全局命令的名称,值是要执行的本地文件的路径。

    23610

    详解从 0 发布 react 组件到 npm 上

    npm init npm init 是生成初始的 package.json 的命令,在 npm init 的时候,你可以根据你自己的需要进行填写你的组件信息。...// 示例 html │ └── app.js // 添加到 react-dom 的文件 ├── package.json ├── src // 组件源代码 │ └── index.js...自动注入编译打包好的脚本文件 为 demo 启动端口为 3001 的服务 然后再配置一下 babel,咱们的 babel 主要做两件事,将 jsx 编译成 es5,然后再加一个通用的 env,所以 ....我们可以通过 babel-cli 来编译我们代码,直接编译 src 目录,到 lib 文件夹。...参考文章 从 0 开始发布一个 react 组件到 npm 创建并发布一个小而美的 npm 包,没你想的那么难!

    1.6K10

    【第8期】webpack入门学习手记(二)

    webpack-cli 注意: 其实我在安装的时候,使用的不是npm命令,而是cnpm。...我们在项目中,添加这段代码之前,先来执行下面这个命令: npm init 这个命令会初始化一个新的package.json,因为我们在安装webpack时生成了一个package.json,所以接下来的内容会直接追加到文件中...因为已经删除掉了package.json文件,接下来我们新生成一个: npm init -y npm install webpack webpack-cli --save-dev npm init -...尤其是当配置文件被拆分成多个文件时,会非常有用。 之前我们直接在命令行中运行的方式叫做CLI,现在通过配置文件,具备更高的灵活性。可以指定loader、plugins 等。...NPM 脚本 还记得在开始小节中,我们添加的scripts.start吗?现在我们同样的在package.json中添加一段脚本,这样我们每次运行程序是,只需要简单调用脚本即可。

    51110

    package.json 详解

    package.json 文件使 npm 可以启动你的项目、运行脚本、安装依赖项、发布到 NPM 注册表以及许多其他有用的任务。...scripts 是 npm CLI 用来运行项目任务的强大工具。他们可以完成开发过程中的大多数任务。...使用 npm CLI 安装软件包时,它将下载到你的 node_modules/ 文件夹中,并将一个条目添加到你的依赖项属性中,注意软件包的名称和已安装的版本。...如果确实引入了错误,则下次运行 npm 命令时将会看到错误提示。建议尽可能使用 npm CLI 更新和管理 package.json,以避免意外将错误引 入package.json 中。...你当然可以在文本编辑器中手动编辑 package.json 并进行更改,只要你注意不要引入任何 JSON 格式错误,这对大多数字段都适用。但是我建议你尽可能使用 npm CLI 命令。

    2.3K20

    从 Element UI 源码的构建流程来看前端 UI 库设计

    package.json 通常我们去看一个大型项目都是从package.json文件开始看起的,这里面包含了项目的版本、入口、脚本、依赖等关键信息。...bootstrap "bootstrap": "yarn || npm i" 安装依赖, 官方推荐优先选用yarn(吐槽一句:我刚开始没看明白,想着bootstrap不是之前用过的那个 ui 库吗 ?...构建流程梳理 构建指令(Makefile) 平时我们都习惯将项目常用的脚本放在package.json中的scripts中。...// Tip: // make new [中文] // 1、将新建组件添加到components.json // 2、添加到index.scss // 3、添加到element-ui.d.ts...scss文件,并添加到packages/theme-chalk/src/index.scss中 3、添加到 element-ui.d.ts,也就是对应的类型声明文件 4、创建package(我们上面有提到组件相关的源码都在

    2.4K20

    从 Element UI 源码的构建流程来看前端 UI 库设计

    package.json 通常我们去看一个大型项目都是从package.json文件开始看起的,这里面包含了项目的版本、入口、脚本、依赖等关键信息。...bootstrap "bootstrap": "yarn || npm i" 安装依赖, 官方推荐优先选用yarn(吐槽一句:我刚开始没看明白,想着bootstrap不是之前用过的那个 ui 库吗 ?...构建流程梳理 构建指令(Makefile) 平时我们都习惯将项目常用的脚本放在package.json中的scripts中。...// Tip: // make new [中文] // 1、将新建组件添加到components.json // 2、添加到index.scss // 3、添加到element-ui.d.ts...scss文件,并添加到packages/theme-chalk/src/index.scss中 3、添加到 element-ui.d.ts,也就是对应的类型声明文件 4、创建package(我们上面有提到组件相关的源码都在

    2K10

    前端|浅探NPM

    但是具体在哪个版本中内置的我没有找到(请大佬告诉我)。下面是NPM的最初版本: ? Yarn与CNPM Yarn可以理解为NPM的远房表亲,同样是包管理器(但我就是不用你)。...很多资料说npm install xxx只是安装到node_modules目录中不会添加package.json到中, 而 npm install xxx --save会添加到package.json中...,但是我每次执行npm install xxx都修改了package.json "dependencies": { "express": "^4.16.4" } 下面我们执行npm install...打开Node安装目录\node_modules\npm\bin,有npm.cmd文件与npm-cli.js文件 npm.cmd入口 :: Created by npm, please don't edit...%" prefix -g'这一行在npm.cmd起的作用是 //如果能运行这两个命令并且得到结果的话将NPM_PREFIX_NPM_CLI_JS的值设置 //为"\node_modules\npm\bin

    91630
    领券