{"_id":"require-at","_rev":"394809","name":"require-at","description":"Call require pretending your are at another directory","dist-tags":{"latest":"1.0.6"},"maintainers":[{"name":"jchip","email":"joel123@gmail.com"}],"time":{"modified":"2021-08-04T04:07:44.000Z","created":"2017-02-17T07:22:08.560Z","1.0.6":"2020-11-28T08:32:13.440Z","1.0.5":"2020-11-28T08:31:06.135Z","1.0.4":"2019-01-13T18:11:11.018Z","1.0.2":"2018-11-16T16:09:16.289Z","1.0.1":"2018-07-21T23:12:08.292Z","1.0.0":"2017-02-17T07:22:08.560Z"},"users":{},"author":{"name":"Joel Chen"},"repository":{"type":"git","url":"git+https://github.com/jchip/require-at.git"},"versions":{"1.0.6":{"name":"require-at","version":"1.0.6","main":"require-at.js","description":"Call require pretending your are at another directory","scripts":{"test":"mocha test/spec","coverage":"istanbul cover -- _mocha test/spec && istanbul check-coverage"},"keywords":[],"author":{"name":"Joel Chen"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/jchip/require-at.git"},"dependencies":{},"devDependencies":{"chai":"^3.5.0","istanbul":"^0.4.5","mocha":"^3.2.0"},"engines":{"node":">=4"},"gitHead":"8460f9c82eebb167e224a7ee492bd234f917122d","bugs":{"url":"https://github.com/jchip/require-at/issues"},"homepage":"https://github.com/jchip/require-at#readme","_id":"require-at@1.0.6","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"shasum":"9eb7e3c5e00727f5a4744070a7f560d4de4f6e6a","size":2402,"noattachment":false,"key":"/require-at/-/require-at-1.0.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/require-at/download/require-at-1.0.6.tgz"},"_npmUser":{"name":"jchip","email":"joel123@gmail.com"},"directories":{},"maintainers":[{"name":"jchip","email":"joel123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/require-at_1.0.6_1606552333260_0.4955917688194569"},"_hasShrinkwrap":false,"publish_time":1606552333440,"_cnpm_publish_time":1606552333440},"1.0.5":{"name":"require-at","version":"1.0.5","main":"require-at.js","description":"Call require pretending your are at another directory","scripts":{"test":"mocha test/spec","coverage":"istanbul cover -- _mocha test/spec && istanbul check-coverage"},"keywords":[],"author":{"name":"Joel Chen"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/jchip/require-at.git"},"dependencies":{},"devDependencies":{"chai":"^3.5.0","istanbul":"^0.4.5","mocha":"^3.2.0"},"engines":{"node":">=4"},"gitHead":"20845e1fba6e6e2c25e8114359a317eea7f385f3","bugs":{"url":"https://github.com/jchip/require-at/issues"},"homepage":"https://github.com/jchip/require-at#readme","_id":"require-at@1.0.5","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"shasum":"459a741039c69c2c87c49269d1d2efe12254405e","size":1949,"noattachment":false,"key":"/require-at/-/require-at-1.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/require-at/download/require-at-1.0.5.tgz"},"_npmUser":{"name":"jchip","email":"joel123@gmail.com"},"directories":{},"maintainers":[{"name":"jchip","email":"joel123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/require-at_1.0.5_1606552265985_0.3242504490816538"},"_hasShrinkwrap":false,"publish_time":1606552266135,"_cnpm_publish_time":1606552266135},"1.0.4":{"name":"require-at","version":"1.0.4","main":"require-at.js","description":"Call require pretending your are at another directory","scripts":{"test":"mocha test/spec","coverage":"istanbul cover -- _mocha test/spec && istanbul check-coverage"},"keywords":[],"author":{"name":"Joel Chen"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/jchip/require-at.git"},"dependencies":{},"devDependencies":{"chai":"^3.5.0","istanbul":"^0.4.5","mocha":"^3.2.0"},"engines":{"node":">=4"},"gitHead":"21fda1ea7bb2b8995d642e7ec131b2470f30f52a","bugs":{"url":"https://github.com/jchip/require-at/issues"},"homepage":"https://github.com/jchip/require-at#readme","_id":"require-at@1.0.4","_npmVersion":"6.5.0","_nodeVersion":"10.15.0","_npmUser":{"name":"jchip","email":"joel123@gmail.com"},"dist":{"shasum":"74495e45d71f2096db6eca9cb51047d18ae119fc","size":2323,"noattachment":false,"key":"/require-at/-/require-at-1.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/require-at/download/require-at-1.0.4.tgz"},"maintainers":[{"name":"jchip","email":"joel123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/require-at_1.0.4_1547403070914_0.38434626587910836"},"_hasShrinkwrap":false,"publish_time":1547403071018,"_cnpm_publish_time":1547403071018},"1.0.2":{"name":"require-at","version":"1.0.2","main":"require-at.js","description":"Call require pretending your are at another directory","scripts":{"test":"mocha test/spec","coverage":"istanbul cover -- _mocha test/spec && istanbul check-coverage"},"keywords":[],"author":{"name":"Joel Chen"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/jchip/require-at.git"},"dependencies":{},"devDependencies":{"chai":"^3.5.0","istanbul":"^0.4.5","mocha":"^3.2.0"},"engines":{"node":">=4"},"gitHead":"9fada63772e9e59d54f75743b2f6dd6faa1766eb","bugs":{"url":"https://github.com/jchip/require-at/issues"},"homepage":"https://github.com/jchip/require-at#readme","_id":"require-at@1.0.2","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"jchip","email":"joel123@gmail.com"},"dist":{"shasum":"9f0336723e905bbfcf892ad19eac073e439fcaba","size":2070,"noattachment":false,"key":"/require-at/-/require-at-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/require-at/download/require-at-1.0.2.tgz"},"maintainers":[{"name":"jchip","email":"joel123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/require-at_1.0.2_1542384556153_0.6641421456620866"},"_hasShrinkwrap":false,"publish_time":1542384556289,"_cnpm_publish_time":1542384556289},"1.0.1":{"name":"require-at","version":"1.0.1","main":"require-at.js","description":"Call require pretending your are at another directory","scripts":{"test":"mocha test/spec","coverage":"istanbul cover -- _mocha test/spec && istanbul check-coverage"},"keywords":[],"author":{"name":"Joel Chen"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/jchip/require-at.git"},"files":["require-at.js"],"dependencies":{},"devDependencies":{"chai":"^3.5.0","istanbul":"^0.4.5","mocha":"^3.2.0"},"engines":{"node":">=4"},"gitHead":"2f7b8216fe3be1eafe53ff17acff35febc3ade24","bugs":{"url":"https://github.com/jchip/require-at/issues"},"homepage":"https://github.com/jchip/require-at#readme","_id":"require-at@1.0.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"jchip","email":"joel123@gmail.com"},"dist":{"shasum":"d0ecfdceb598dcc5c0bca74f0d8f9ccae7142598","size":1982,"noattachment":false,"key":"/require-at/-/require-at-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/require-at/download/require-at-1.0.1.tgz"},"maintainers":[{"name":"jchip","email":"joel123@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/require-at_1.0.1_1532214728202_0.145169427383959"},"_hasShrinkwrap":false,"publish_time":1532214728292,"_cnpm_publish_time":1532214728292},"1.0.0":{"name":"require-at","version":"1.0.0","main":"require-at.js","description":"Call require pretending your are at another directory","scripts":{"test":"mocha test/spec","coverage":"istanbul cover -- _mocha test/spec && istanbul check-coverage"},"keywords":[],"author":{"name":"Joel Chen"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/jchip/require-at.git"},"dependencies":{},"devDependencies":{"chai":"^3.5.0","istanbul":"^0.4.5","mocha":"^3.2.0"},"engines":{"node":">=4"},"gitHead":"fb59ceb8d444ad1fca231c7122fe7d71df223363","bugs":{"url":"https://github.com/jchip/require-at/issues"},"homepage":"https://github.com/jchip/require-at#readme","_id":"require-at@1.0.0","_shasum":"6771fae2a04a78755f69dd14c6f7afe7e3137e14","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.4","_npmUser":{"name":"jchip","email":"joel123@gmail.com"},"dist":{"shasum":"6771fae2a04a78755f69dd14c6f7afe7e3137e14","size":2444,"noattachment":false,"key":"/require-at/-/require-at-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/require-at/download/require-at-1.0.0.tgz"},"maintainers":[{"name":"jchip","email":"joel123@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/require-at-1.0.0.tgz_1487316128325_0.6417733198031783"},"directories":{},"publish_time":1487316128560,"_cnpm_publish_time":1487316128560,"_hasShrinkwrap":false}},"readme":"[![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url]\n[![Dependency Status][daviddm-image]][daviddm-url] [![devDependency Status][daviddm-dev-image]][daviddm-dev-url]\n\n# require-at\n\nAllow you to call `require` or `require.resolve` pretending that you are at another directory.\n\n## Purpose\n\nGiven the directory structure below with two NodeJS apps:\n\n    app1\n    |-+ foo\n    | +-- index.js\n    | +--+ node_modules\n    |    +--+ x \n    |       + ...\n    app2\n    |-+ bar\n    | +-- index.js\n    | +--+ node_modules\n    |    +--+ y\n    |       + ...\n\nWhen you call `require(\"x\")` in `/app1/foo/index.js`, NodeJS will search and find module `x` there.\n\nNow from the same file, if you want to resolve the module `y` under the directory `/app2/bar`, you have to use an absolute or relative path directly pointing to `y`, and you may have to do some searching, probably re-implementing Node's module searching algorithm if you don't know exactly where `y` could be.\n\nHowever, in the file `/app2/bar/index.js`, it can just do `require(\"y\")` and Node would automatically find the module for it, because that file is at the location where `y` is under.\n\nWhat if from the file `/app1/foo/index.js`, you can call `require` as if you were at the directory `/app2/bar`, then you would be able to utilize Node's module searching automatically. \n\nTo achieve this, most other implementations choose to re-implement Node's module searching algorithm.\n\nThis module's approach is to tap into Node's `module` and let it do the work.\n\n## Install\n\n    $ npm install require-at --save\n\n## Usage\n\nA single function is exported.\n\n##### `requireAt(dir, [request])`\n\n-   If you call it with just `dir`, then it returns a `require` function that's been binded to the directory `dir`.  You can use it to load any module as if you are at `dir`.  \n    -   You can also call `require.resolve` with the same effect.\n-   If you call it with `dir` and a `request`, then it will load and return the module `request` as if at `dir`.\n\n##### Example\n\n```js\nconst requireAt = require(\"require-at\");\n\n// get back a require binded to /another/dir\n\nconst requireAtAnother = requireAt(\"/another/dir/\");\nconst modXPath = requireAtAnother.resolve(\"modX\");\nconst modX = requireAtAnother(\"modX\");\n\n// load modY at /another/yet/dir directly\n\nconst modY = requireAt(\"/another/yet/dir\", \"modY\");\n```\n\n## License\n\nApache-2.0 © [Joel Chen](https://github.com/jchip)\n\n[travis-image]: https://travis-ci.org/jchip/require-at.svg?branch=master\n\n[travis-url]: https://travis-ci.org/jchip/require-at\n\n[npm-image]: https://badge.fury.io/js/require-at.svg\n\n[npm-url]: https://npmjs.org/package/require-at\n\n[daviddm-image]: https://david-dm.org/jchip/require-at/status.svg\n\n[daviddm-url]: https://david-dm.org/jchip/require-at\n\n[daviddm-dev-image]: https://david-dm.org/jchip/require-at/dev-status.svg\n\n[daviddm-dev-url]: https://david-dm.org/jchip/require-at?type=dev\n","_attachments":{},"homepage":"https://github.com/jchip/require-at#readme","bugs":{"url":"https://github.com/jchip/require-at/issues"},"license":"Apache-2.0"}