1

仮想ファイル システムからいくつかのノード モジュールをロードしようとしていますが、動作させることができません

var request = require('request')
  , AdmZip = require('adm-zip')
  , fs = require('fs')
  , unionfs = require('unionfs')
  , memfs = require('memfs')
  , mem = new memfs.Volume
  , data = []

unionfs.use(fs).use(mem)
unionfs.replace(fs)

var req = request({
    method: 'GET',
    uri: 'https://firebasestorage.googleapis.com/v0/b/****.appspot.com/o/node_modules.zip',
    headers: {
        "encoding": "binary"
    }
})

req.on('data', function(chunk) {
    data.push(chunk)
}).on('end', function() {
    var binary = Buffer.concat(data)
    mem.mountSync('./', {
        "node_modules.zip": binary
    })

    var zip = new AdmZip("./node_modules.zip")
    var files = {}
    zip.getEntries().forEach(function(entry) {
        if (entry.isDirectory)
            console.log(entry.entryName)
        files[entry.entryName] = entry.getData()
    });
    mem.mountSync('./node_modules', files)

    //need to get these modules dynamically
    var async = require("async")
})

エラー:エラー: モジュール 'async' が見つかりません

今、このモジュールhttps://www.npmjs.com/package/app-module-pathを使用して仮想パスを追加しようとしましたが、物理パスしか取得しません。

誰かこの嘆願を手伝ってくれませんか?

セキュリティについて心配する必要はありません。これには暗号化を使用します。

4

1 に答える 1

2

requireunionfs の作成者は、新しいバージョンの では動作しないと書いていnode.jsます。

// NOTE: This does not work in new Node.js
// Now you can also do:
// require('/usr/mem/dir/hello.js');
// Hello world!
// require('/project/hello.js');
// Hello world!

https://github.com/streamich/unionfs/blob/master/examples/example.js#L41

于 2016-11-24T11:59:58.050 に答える