如何使用主文件夹或主文件指定npm package.json

如何使用主文件夹或主文件指定npm package.json,npm,package.json,Npm,Package.json,我正在创建一个npm包1,其中包括另一个npm包2。包2只包含一些已编译的html文件,文件夹dist中没有js文件。没有主文件。该软件包应仅用作一种存档 我应该在package.json中指定什么?我应该指定文件:[“dist/”],还是main:'dist' 如何从需要包2的包1访问文件夹dist要求('package2')。距离?或者只需要求('package2')?我想访问文件夹dist,以便根据包1的业务逻辑复制到其他位置 非常感谢 在npm/Node.js中,require()仅适用

我正在创建一个npm包1,其中包括另一个npm包2。包2只包含一些已编译的html文件,文件夹
dist
中没有js文件。没有主文件。该软件包应仅用作一种存档

我应该在package.json中指定什么?我应该指定
文件:[“dist/”]
,还是
main:'dist'

如何从需要包2的包1访问文件夹
dist
<代码>要求('package2')。距离?或者只需
要求('package2')
?我想访问文件夹dist,以便根据包1的业务逻辑复制到其他位置


非常感谢

在npm/Node.js中,
require()
仅适用于JavaScript文件。因此,您需要在包2中包含一些js,以使工作正常

这里有一个想法——在包2中,创建一个
index.js
,如下所示:

var path = require('path');

exports.base_path = path.join(__dirname, 'dist');
在package.json中,指向此文件的
main

然后在包1中,您可以轻松可靠地获得html文件的基本路径:

var html_base_path = require('package2').base_path;
之后,您可以使用和流来复制周围的内容。例如,要将包2的
dist/index.html
复制到
/some/other/dir
,可以执行以下操作:

var fs = require('fs');
var path = require('path');

var html_base_path = require('package2').base_path;

var filename = 'index.html');
var sourcePath = path.join(html_base_path, filename);
var destPath = path.join('/some/other/dir', filename);
fs.createReadStream(sourcePath).pipe(fs.createWriteStream(destPath));

谢谢你的解释