0
我正在開發一個browserify變換,我希望能夠擴展。如何爲browserify變換動態加載節點模塊
//excerpt from package.json of my application that is using my transform and extension
"browserify": {
"transform": [
["mytransform", {"extensions": ["my-extension"] } ]
]
}
在上面的例子中,我希望用戶能夠指定被解釋內我的變換作爲擴展其他節點的模塊。
在我的變換代碼,我有以下裝載的擴展:
//lines 347-349 of mytransform/index.js
var extensions = options.extensions.map(function(extensionId){
return require(extensionId)();
});
當我運行我的代碼,我看到下面的
module.js:340
throw err;
^
Error: Cannot find module 'my-extension'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at /Users/pdgreen/Documents/Personal/github/mytransform/index.js:348:52
at Array.map (native)
at module.exports (/Users/pdgreen/Documents/Personal/github/mytransform/index.js:347:39)
at nr (/Users/pdgreen/Documents/Personal/github/myproject/node_modules/browserify/node_modules/module-deps/index.js:231:23)
at /Users/pdgreen/Documents/Personal/github/myproject/node_modules/browserify/node_modules/resolve/lib/async.js:48:21
at /Users/pdgreen/Documents/Personal/github/myproject/node_modules/browserify/node_modules/resolve/lib/async.js:127:35
我的擴展是提供給節點,因爲如果我在我的應用程序中做了require('my-extension')
,它的加載沒有問題。似乎爲我的轉換運行的解析代碼太嚴格了。我錯過了什麼?