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

时间:2016-10-15 03:19:02

标签: npm package.json

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

我应该在package.json中指定什么?我应该指定files: ["dist/"]还是main:'dist'

如何从需要包2的包1中访问文件夹distrequire('package2').dist?或只是require('package2')?我想访问文件夹dist,所以我可以根据包1的业务逻辑复制到其他位置。

非常感谢!

1 个答案:

答案 0 :(得分:0)

在npm / Node.js中,require()仅适用于JavaScript文件。因此,您需要在包2中包含一些j来使事情有效。

这是一个想法 - 在包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;

之后,您可以使用readwrite流来复制内容。例如,要将包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));