在 VS Code 中以只读方式打开工作区中的某些文件

Open certain files in a workspace as read-only in VS Code

提问人:rmchndrng 提问时间:9/19/2016 最后编辑:Gama11rmchndrng 更新时间:6/21/2023 访问量:3720

问:

我正在使用 Visual Studio Code 处理一个打字稿项目。我有一个工作流,其中 gulp 任务会将代码复制到目标文件夹中。复制的文件将由目标文件夹中的相应文件使用导入。

例如。文件夹结构

常见

服务器/src

客户端/src/app

所有常见的文件将被复制到 server/src/common 和 client/src/app/common 中

在 server/src/test.ts 文件中,我将添加对复制文件的引用,如下所示。

import { CommonClass } from './common/commonClass'

一切都很好。当我决定通过按 F12 转到导入类“CommonClass”的定义时,会出现此问题。

这将打开复制的文件,而不是源“common”文件夹中的文件。我想将此打开的文件限制为只读模式,以便不进行更改。这些更改将及时被 gulp 任务替换。

有没有办法使用 Visual Studio Code 中的某些扩展或工作区设置来实现此目的?

尝试使用 gulp-chmod 使目标文件为只读文件,但在 typescript 编译器在构建过程中尝试访问它们时遇到了问题。

node.js Typescript 可视化工作室代码

评论

6赞 Seblor 8/23/2018
(迟到总比没有好)不是答案,但解决方案可能是创建符号链接而不是复制文件。我目前在我的多模块项目中有这个,它运行良好,因为编辑引用的文件将编辑原始文件。
0赞 Connor Low 8/7/2021
您可以尝试在工作场所设置中隐藏它们。例如"files.exclude""files.exclude": { "**/dist/**/*": true }
2赞 Jack Punt 10/3/2022
你需要的是:github.com/microsoft/vscode/issues/161715,它允许你指定语义上的只读文件,独立于 filesystem/chmod 属性。
1赞 Josh 12/8/2022
我知道这并不能回答这个问题,但是如果您在这两个项目中都使用 webpack 或 tsc 之类的东西,您可以直接从代码链接到该文件夹。如果您在 webpack 中设置别名,它可能看起来像 .然后,Webpack 会将 common 模块的内容编译到你的 dist 文件夹中。我过去曾成功地将此过程用于客户端和服务器之间共享的代码。import { CommonClass } from 'common/commonClass';

答:

0赞 Vladyslav Zavalykhatko 6/21/2023 #1

VSCode 1.79 引入了将特定文件和文件夹标记为只读的功能