tink

编程之家收集整理的这个编程导航主要介绍了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全部内容。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


jade,Jade 是一个高性能的模板引擎,以 JavaScript 的形式集成在 node 和浏览器中
curl.js,轻量级,快速,可扩展的模块加载
jspm-cli,基于SystemJS的Js包管理器
angular-cli,快速构建Angular2项目
lerna,一款多项目多模块的管理工具
duo.js,前端的下一代包管理器。
WebJars,将web前端资源(如jQuery & Bootstrap)打成jar包文件
swc,用rust编写的网络编译器,babel的替代品
fetch,ajax请求的新写法
babel-plugin-preval,在构建期预先评估代码
Lebab,用于将你的ES5代码转成ES6/ES7
browserify,一个浏览器端代码模块化工具,require和module.exports来导入和导出.Browserify的原理:部署时处理代码依赖,将模块打包为一个文件。
esprima,高性能,符合标准的ECMAScript 解析器
bundle-buddy,识别bundle重复的工具
FIS3,为你定制的前端工程构建工具
prerender-loader,Webpack通用预渲染
Parcel,快速,零配置的 Web 应用程序打包器
Neutrino,创建和构建零初始配置的现代JavaScript应用程序
lit-html,js中写 HTML 的模板引擎
walle,瓦力 Devops开源项目代码部署平台