Articles of 符号链接

正确configuration依赖本地软件包的NPM软件包

我有三个本地npm包: C:\projects\A , C:\projects\B和C:\projects\main 。 Main是使用Webpack构build的React应用程序。 Main取决于A和B ,也取决于B 我们有我们自己的“全球”包pipe理器,它保证包将位于同一个父文件夹中。 我想适应这些: 节点(和webpack的) require将解决本地包 每当我改变A或B时,我不需要在Main npm install 我在Main的package.json做了这个: …. "dependencies": { "A": "file:../A", "B": "file:../B", "react": … ……… 但遇到了一个奇怪的问题: npm不会安装A和B的node_modules中的所有包,所以Webpack构build失败。 而且我需要每次运行npm install 。 我GOOGLE了 ,发现linklocal ,它将所有本地包replace为符号链接。 但遇到另一个问题: linklocal不会安装链接依赖项的依赖关系,因此通常最终会安装链接依赖项的依赖关系两次:在npm安装期间,然后在linklocal 所以我跑了linklocal ,然后npm install在postinstall脚本。 但是npm @ 3没有对符号链接的文件夹做任何事情: npm WARN update-linked node_modules/A needs updating to 1.0.0 from 1.0.0 but we can't, […]

在Node.JS中使用绝对path创build相对符号链接

我有一个以下结构的项目: project-root ├── some-dir │ ├── alice.json │ ├── bob.json │ └── dave.json └── … 我想创build像下面这样的符号链接: foo – > alice.json 我select使用fs.symlink函数: fs.symlink(srcpath, dstpath[, type], callback) asynchronous符号链接(2)。 完成callback没有给出可能的exception之外的其他参数。 type参数可以设置为'dir' , 'file'或'junction' (默认是'file' ),并且只能在Windows上使用(在其他平台上被忽略)。 请注意,Windows联结点要求目标path是绝对path。 当使用'junction' ,目标参数将被自动标准化为绝对path。 所以我做了: require("fs").symlink( projectRoot + "/some-dir/alice.json" , projectRoot + "/some-dir/foo" , function (err) { console.log(err || "Done."); } ); 这创build了foo符号链接。 但是,由于path是绝对的,因此符号链接也使用绝对path。 […]

如何通过覆盖现有的符号链接来强制创build符号链接?

我使用fs模块创build符号链接。 fs.symlink("target", "path/to/symlink", function (e) { if (e) { … } }); 如果path/to/symlink已经存在,则在callback中发送一个错误。 我如何强制符号链接创build并重写现有的符号链接? 是否有另一种select比check error + delete existing symlink + try again ?