如何更改已安装的npm模块的路径(通过生命周期挂钩)?

时间:2018-12-02 17:05:58

标签: node.js npm

我正在建造一些CI管。

在某些情况下,我想在安装软件包时更改软件包名称。因此,安装后,我将在 node_modules 目录中获得一个具有更改名称的目录。该怎么做?

示例:我的模块的父目录中有程序包B。我在模块X中。我想通过命令npm i ../B安装B。安装后,我想获得A目录,而不是B中的node_modules目录。

如果我只是运行预安装脚本并更改package.json文件的内容,它将被永久更改。因此,在第二次预安装时,我将获得更改后的package.json文件。同样,它也不影响node_modules目录中的目录名称。

我可以在预安装时“虚拟​​”更改软件包名称吗?

我的代码:

const { readFileSync, writeFileSync } = require('fs')

const packageJson = JSON.parse(readFileSync('./package.json', 'utf8'));

packageJson.name = 'new-name';

writeFileSync('./package.json', JSON.stringify(packageJson), {
    encoding: 'utf8'
});

它确实可以(几乎)工作,但是: -它不会影响节点模块中软件包的实际名称 -它会永久更改文件package.json文件

0 个答案:

没有答案
相关问题