回答:
これは古い質問であることは知っていますが、同じ問題にぶつかりました。私が出会った解決策は、最初に空のnode_modules
フォルダーを作成し、それをクラウドと同期することでした。
空のフォルダーが同期されたら、次に
OneDrive設定→フォルダーの選択
node_modules
フォルダーの選択を解除しました。
その後npm install
、プロジェクトのルートフォルダーで実行すると、OneDriveはクラウド内のフォルダーのコンテンツとの競合を検出します。同期しません。
このアプローチの欠点は、OneDriveが同期エラーを生成することですが、私のニーズにはうまく機能しているように見えました。
node_modules
フォルダーを削除します。そこにある場合、OneDriveはそれらが異なると文句を言います。クラウドにない場合、違いはなく、ODは文句を言いません。
OneDriveでは、名前でディレクトリを除外することはできません。これは間もなく変更されないものです。
[UserVoiceリクエストに対するOneDriveの代表的な応答:]現時点ではありません
OneDriveの設定で同期したくないディレクトリのチェックを外すことを推奨する人もいますが、OneDrive Files on-demandではそれが不可能になりました。
ただし、Node.js側で調整することでこれを解決できます。作成しnode_modules
たディレクトリにファイルを別の場所へのシンボリックリンクを:
# Open any place outside OneDrive
cd D:\node_dependencies
# Make a symlink target. After linking, node_modules for your project
# will be installed here
mkdir node_modules_for_my_project
# Open the project directory
cd <the project directory>
# Make a *file* link from node_modules to the newly created directory.
# You will need to delete existing node_modules directory if it exists
cmd /C "mklink node_modules D:\node_dependencies\node_modules_for_my_project"
ここでの重要な部分は、あなたが作成することで、ファイルのシンボリックリンクではなく、ディレクトリ 1を。OneDriveはこのシンボリックリンクを認識および同期しませんが、Node.jsは意図したとおりに動作します。
OneDrive v17.3.7101.1018およびOneDrive Files on-demandを有効にしてテスト済み。
これは普遍的な解決策ではありません。これの欠点は、エクスプローラー、Powershellおよびその他のツールがnode_modules
ディレクトリとして認識しないことです。
ただし、Node.jsベースのコードエディターは問題なく読み込めます。
Cannot find module
(Typescriptを使用して)アプリを起動しようとするとエラーが発生します。
Typescriptユーザーの場合は、node_modulesをパスに追加して、モジュール解決の問題を回避してください。
tsconfig.jsonに以下を追加します。
"paths": {
[... some paths ...],
"*": [
"node_modules/*"
]
}
編集:まだいくつかの問題があります。プロジェクトをビルドできますが、ts-nodeおよびnodemonでCannot find module
エラーが発生します。さて、これはまだ問題です:(
プロジェクトが保存され、モジュールがインストールされるOneDriveフォルダーの外側に「ローカル」フォルダーを作成することが最善の解決策であることがわかりました。これが実際のプロジェクトです。
OneDriveに同期するには、手動で「パラレル」フォルダーを作成し、「RoboCopy」を使用して必要なコンテンツのみをコピーします。その後、このタスクをスケジュールできます。
無視するファイルとフォルダーの名前/ワイルドカードは、.gitignoreファイルからコピーされました
ソリューションは、いくつかの記事に基づいています。
GUIを使用して、スケジュールする.batタスクファイルを作成することもできます。はるかに優れたMicrosoft &ChoEazyCopy GUIによるGUI