我正在 monorepo 中工作,我希望我的包的示例与结构中的包分开,如下所示:
my_packages_collection/
examples/
foo/
...
packages/
foo/
example
...
如果我进入my_packages_collection
并运行,ln -s examples/foo packages/foo/example
我会进入packages/foo
一个名为的文件example
而不是文件夹。
如果我运行cd packages/foo/example
我得到:cd: no such file or directory: packages/foo/example
并vscode
显示:
Unable to read file '[...]/foo/example' (Unknown (FileSystemError): An unknown error occurred. Please consult the log for more details.)
ls -l
按预期工作。
将其“推送”到科学和 github 上,并显示一个“链接文件夹”图标,其中包含带有文本的文件"examples/foo"
(笑)
我缺少什么?
答案1
一种方法是chdir
进入packages/foo
并从那里建立符号链接:
$ mkdir my_packages_collection && cd my_packages_collection
$ mkdir -p examples/foo packages/foo
$ touch examples/foo/bar
$ cd packages/foo && ln -s ../../examples/foo example
$ ls example
bar
另一种方法是建立不带chdir
.这将更难在 shell 中完成。
$ cd -
$ cd ..
$ rm -rf my_packages_collection
$ mkdir my_packages_collection && cd my_packages_collection
$ mkdir -p examples/foo packages/foo
$ touch examples/foo/bar
$ ln -s ../../examples/foo packages/foo/example
$ ls packages/foo/example
bar
这两种方法的结果都是一个包含字符串的符号链接文件../../examples/foo
。
$ readlink packages/foo/example
../../examples/foo