好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

tink

tink 介绍

npm 出品的下一代包管理器,能够更好处理 node package 的依赖关系

Tink 特性

Tink 能做什么呢?那就是你不用再自己 调用 Node 了, 调用 Tink 就行,Tink 有 一个 名为 shell 的子命令,负责打包 Node,加些补丁,然后就可以 生成 一个 叫 Virtual node_modules 的神奇产物了。

Virtual node_modules 有几大特性:

因为 Tink 是 一个 运行时包管理器,所以它基本上不再需要物理 Node 模块了,同时并不需要改动模块加载器或者包中的 API。包可以像往常一样访问 文件 系统,所以就能和之前的配置等细节完全兼容。

既然 Node 模块不存在了,那么 文件 都去哪儿了呢?Tink 把 文件 都保存在了类似 npm 那样的单一全局缓存里,然后通过哈希算法来清除所有重复数据。因为使用了哈希算法,所以 Tink 不用再存储重复的 内容 。就算你的 一个 项目有 5 个历史版本,Tink 也只会存储原始版本和每次更新的 内容 ,大大节约了存储空间,同时优化了 数据读写 的 性能 表现。

既然现在包管理集成到了运行时中,那么当你需要依赖项的时候就不用再手动 获取 了,Tink 会 自动 根据需要下载所需的依赖项,完全不用你再操心了。你不需要的依赖项它也不会下载,你需要的依赖项它都能预先下载好。Tink 还设置了一种机制,防止管理器 随机 下载一些其实你用不到的 内容 。

这也就意味着你不用再操心 npm 包安装流程了。你只需要 Tink Add、Tink Move 就能安装、卸载包,后面有什么过程都会 自动 完成。如果你的同事推上来什么 内容 ,你只需要拉下来就可以直接运行,具体的细节 Tink 都为你打点好了。这可是一项巨大的改进,值得掌声鼓励。

有人可能会担心,把 fs 也打包起来不是很危险吗?其实我们不觉得这有什么,因为 Electron 就是这么干的!他们 在这 方面很有一套,我们也会学习他们的经验,所以这并不是什么大问题。其实 Tink 的一些相关 代码 就是直接从 Electron 过来的,我还做了一些调整和改进。

其他特性

除了上面提到的这些,Tink 还带来了其他一些很棒的特性, 包括 :

作为运行时包管理器,Tink 直接提供了对?TypeScript?、ESM、Wasm 和 JX 的 支持 !

Tink 从全局缓存中加载依赖 文件 时会实时做校验,大大提升了安全性。

运行 Tink 时,如果你缺少某些依赖项,或者缓存中的某个 文件 已经损坏,那么 Tink 会 自动 为你下载并安装这些 文件 , 自动 修复你的依赖项。在生产流程中可以 关闭 这个选项,但在项目开发过程中这个 功能 非常方便,我也很喜欢它。

最后也是我最喜欢的特性:所有这些 功能 都是开箱即用的,无需专门配置,也用不着额外安装任何 内容 。这里要强调一下,所有这些特性都不需要任何类型的加载器,不需要额外的调整选项;webpack 之类的 内容 都能直接使用。你需 要做 的只不过是安装并运行 Tink,然后一切就 自动 部署妥当了。

GitHub: https://github.com/npm/tink

网站描述: npm 出品的下一代包管理器

tink官方网站

官方网站:

如果觉得 网站内容还不错,欢迎将 网站 推荐给程序员好友。

查看更多关于tink的详细内容...

  阅读:50次

上一篇

下一篇

第1节:curl.js    第2节:jade    第3节:jspm-cli    第4节:angular-cli    第5节:lerna    第6节:duo.js    第7节:swc    第8节:WebJars    第9节:fetch    第10节:babel-plugin-preval    第11节:browserify    第12节:Lebab    第13节:bundle-buddy    第14节:esprima    第15节:FIS3    第16节:prerender-loader    第17节:Parcel    第18节:lit-html    第19节:Neutrino    第20节:walle    第21节:webpack    第22节:pug    第23节:bower    第24节:Snowpack    第25节:template.js    第26节:Forge    第27节:stylis.js    第28节:Liquid    第29节:npx    第30节:jss    第31节:component    第32节:faster.js    第33节:Juicer    第34节:Jiko    第35节:laytpl    第36节:CoffeeScript    第37节:ghcjs    第38节:critters    第39节:vue-loader    第40节:swig    第41节:Workerize    第42节:Bit    第43节:Acorn    第44节:hyperHTML    第45节:ESL    第46节:script.js    第47节:yarn    第48节:MobX    第49节:Vulcan    第50节:vue-cli    第51节:WeFlow    第52节:qiankun乾坤    第53节:elf    第54节:create-react-app    第55节:CNPM    第56节:codelyzer    第57节:electron-webpack    第58节:dot-dom    第59节:prerender    第60节:assemblyscript    第61节:jarvis    第62节:Rollup    第63节:webpack-dashboard    第64节:worker-plugin    第65节:webpack-encore    第66节:HEAD    第67节:poi    第68节:dawn    第69节:mustache.js    第70节:shipit    第71节:Flow    第72节:teletype    第73节:Dust.js    第74节:Athena    第75节:npm    第76节:Koala    第77节:webpackmonitor    第78节:ndm    第79节:size-plugin    第80节:seajs    第81节:prepack-webpack-plugin    第82节:webpack-simple-starter    第83节:Verdaccio    第84节:doT.js    第85节:bonsai    第86节:arttemplate    第87节:UiBot RPA    第88节:EJS    第89节:mern-starter    第90节:v8.dev    第91节:renovate    第92节:happypack    第93节:gulp    第94节:grunt    第95节:microbundle    第96节:handlebars.js    第97节:micro    第98节:tink    第99节:min-cli    第100节:Snibox    第101节:Codekit    第102节:WebAssembly    第103节:webpack-bundle-analyzer    第104节:htm    第105节:yeoman    第106节:Broccoli.js    第107节:jetpack    第108节:ied    第109节:Ender    第110节:Nunjucks    第111节:splittable    第112节:closure-compiler    第113节:react-boilerplate    第114节:SystemJS    第115节:electron-webpack-dashboard    第116节:fuse-box    第117节:jsvu    第118节:tmt-workflow    第119节:Cooking    第120节:hogan.js