• Stars
    star
    155
  • Rank 240,864 (Top 5 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created almost 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

避免 iCloud 同步 node_modules(Avoid node_modules to sync with iCloud)

nosync-icloud

避免 iCloud 同步 node_modules(Avoid syncing node_modules to iCloud)。

Version Downloads Commit Issues License

简体中文English

安装

npm i -g nosync-icloud
# or
yarn global add nosync-icloud

我要解决什么痛点?

很多开发者都在使用 Mac 作为自己的生产工具,苹果 iCloud 同步的便利性相信也不需要我多解释,特别是当你有多台苹果设备时,那种无缝的体验,一旦用了就回不去。可作为一名前端开发人员,几乎每个项目里都会有一个庞大的 node_modules。如果你想把自己的前端项目也备份到 iCloud,你会发现,当 iCloud 自动同步 node_modules 时,那是一种多么痛的领悟 —— 繁多的文件、嵌套的层级、庞大的体积等等,而 node_modules 也并没有同步的必要,你只需要一个 package.jsonlock file 就可以随时随地还原项目的依赖。在这方面,iCloud 的糟糕体验使得你不得不打消用它来备份前端项目的念头。

有没有现行的解决方案?

如何避免 iCloud 自动同步 node_modules?方法还是有的,你只需要创建一个 node_modules.nosync 文件夹,然后为它制作一个名为 node_modules 的替身(快捷方式)即可。iCloud 不会同步以 .nosync 结尾的文件或者文件夹,而这样做也不会影响到你的开发,你依然可以使用 npm install

mv node_modules node_modules.nosync && ln -s node_modules.nosync node_modules

或扩展版本

[[ ! -L "node_modules" && -d "node_modules" ]] && mv node_modules node_modules.nosync && ln -s node_modules.nosync node_modules || echo "Failed: not-candidate-dir or already-done" >&2

但输入这么一串命令多少有些麻烦,所以当你用谷歌搜索 iCloud,node_modules 这些关键字的时候,你会发现大量用户抱怨这个,我也是其中之一,并给苹果提交的反馈,但是苹果似乎并没有积极解决这个问题,网上提供的方案也大体和我上面说的一样。

让事情更简单点

其实上面的那行命令做的事情完全可以通过 Node.js 实现。所以我写了这个 CLI 工具 —— nosync-icloud 👏👏👏🎉🎉🎉。

如何使用

1. 安装
npm i -g nosync-icloud
# or
yarn global add nosync-icloud

安装成功后会创建 nosyncns (简写,作用相同)的全局命令。

2. 使用

在终端中进入你的项目,执行 ns 即可。ns 命令会检查当前项目的 node_modules,如果你已经安装过 node_modules,那么他会把 node_modules 重命名为 node_modules.nosync 并创建一个名为 node_modules 的替身。如果你没有安装过,它会提供三种可选安装方式 —— npmyarncnpm,当然你也可以选择稍后安装。安装完成后,它还会提示你是否将 node_modules.nosync 添加到 .gitignore

3 其他指令

nosync-icloud 不仅可以禁止 iCloud 自动同步 node_modules,你还可以通过 ns -f foo 指定任何你不希望同步的文件夹。

指令 简写 作用
--version -v 查看当前版本号
--help -h 输出帮助信息
--folder -f 指定你不希望同步到 iCloud 的文件夹,默认 node_modules,如: ns -f foo
--skip-git -s 跳过将 “nosync 文件夹” 添加到 .gitignore 的步骤

写在后面

node_modules 是一个约定俗成的文件夹,所以一些 webpack 配置中,会硬编码 node_modules 路径,请注意修改。如果你觉得这个小工具还不错,不妨把它分享给其他人。如果你有任何问题或建议,欢迎提交 IssuePR

More Repositories

1

vue-ueditor-wrap

🚴Vue + 🚄UEditor + v-model双向绑定🚀
JavaScript
1,549
star
2

vue-cli3-optimization

基于vue-cli@3的项目可行性优化方案探索
JavaScript
122
star
3

vue-optimization

探索vue项目性能优化的各种可行性方案
JavaScript
90
star
4

stargazers

快速获取Github仓库star者的公开信息😈https://haochuan9421.github.io/stargazers/
JavaScript
77
star
5

vue-ueditor-wrap-demo

demo based on vue-cli for vue-ueditor-wrap
JavaScript
69
star
6

blog

我的博客
67
star
7

seamless-scroll

一款媲美原生 App 体验的“无缝滚动”插件(📦< 3KB)
JavaScript
51
star
8

vue-ueditor-wrap-nuxt

demo based on nuxt for vue-ueditor-wrap
JavaScript
15
star
9

ueditor-koa-server

UEditor 服务端示例(Node.js)
TypeScript
14
star
10

wx-msg-crypto

微信公众号 & 第三方平台消息通知加解密 Node.js 示例(基于 Koa2)
JavaScript
7
star
11

web-store

前端存储方案 —— LocalStorage、SessionStorage、IndexedDB、WebSQL、Cookies
JavaScript
7
star
12

private-chrome

一款可以在 Mac 上直接打开 Google Chrome 无痕模式窗口的小应用
6
star
13

amazing-canvas

收集有意思的canvas demo,欢迎PR,请尽可能的支持IE9
5
star
14

webhooks-nuxt-demo

借助 Webhooks 实现 Vue SSR 项目的自动化部署
JavaScript
5
star
15

urm

Universal Registry Manager 通用的 registry 配置管理工具
JavaScript
4
star
16

image-compressor

基于FileReader,Canvas,Base64的纯前端图片压缩🍔🍪 https://haochuan9421.github.io/image-compressor/
HTML
4
star
17

seamless-scroll-demo

demo based on create-react-app for seamless-scroll
JavaScript
4
star
18

nolint

A CLI tool, help you to set up lints(eslint, stylelint, hooks...) by a few question
JavaScript
3
star
19

cos-demo-refactor

腾讯云对象存储 COS 签名服务示例(Node 重构版)
JavaScript
2
star
20

babel-plugin-inject-polyfills

在项目入口文件中插入指定的 polyfills(Inject polyfill imports to the entry file)
JavaScript
2
star
21

screen-detector

显示器色彩检测
HTML
2
star
22

cos-demo

腾讯云对象存储COS DEMO
JavaScript
2
star
23

babel-preset-vue2

针对 [email protected] 的 Babel 预设(Babel preset for [email protected]
JavaScript
2
star
24

antd-css-conflict-demo

复现 antd 样式引入冲突 BUG https://github.com/ant-design/ant-design/issues/14895#issuecomment-469131513
JavaScript
2
star
25

virtual-scroll

原生JS手写虚拟滚动
JavaScript
1
star
26

coscmd

一个上传本地文件到腾讯云对象存储(COS)的命令行工具
TypeScript
1
star
27

vue-boilerplate

用 webpack 从零搭建属于自己的 Vue 项目脚手架
JavaScript
1
star