繁体   English   中英

从node_modules中的依赖关系中复制文件

[英]Copy file from node_modules in a dependency

我具有以下postinstall脚本的模块A

"postinstall": "cp node_modules/dep-module/file.txt lib/file.txt"

运行npm install ,可以找到并复制文件:

module-A
|- node_modules
   |- dep-module
      |- file.txt

在我从模块B导入模块A之前,此方法一直工作良好:

"module-a": "0.0.1"

现在,由于我从模块B执行npm install ,因此目录结构为:

module-B
|- node_modules
   |- module-A
   |- dep-module
      |- file.txt

在同一路径中找不到file.txt ,应改为:

"postinstall": "cp ../dep-module/file.txt lib/file.txt"

解决此问题的最佳选择是什么?

目前,我已经破解了一个脚本,该脚本简单地进行路径检查以查看是否存在node_modules目录,但是我更喜欢一种可以避免使用节点脚本的解决方案...

const getModulePath = module =>
  fs.existsSync(path.resolve('./node_modules')) ? `./node_modules/${module}` : `../${module}`;

fs.copy(`${getModulePath('dep-module')}/file.txt`, 'dist/file.txt');

您可以使用require.resolve()将模块样式的字符串解析为文件路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM