babel-plugin-proxy
babel-plugin-proxy copied to clipboard
TypeError: Cannot create property '[object Object]' on string 'exports'
when use exports err occur
test.js:
module.exports = new Proxy({}, {
get: (target, property) =>
(test) => [target, property, test]
});
demo.js:
import {test} from './test';
console.log(test);
Err msg:
obj[propName] = val;
^
TypeError: Cannot create property '[object Object]' on string 'exports'
at Object.set (test.js:8:9)
at globalSetInterceptor (test.js:43:20)
at Object.<anonymous> (test.js:1:1)
at Module._compile (module.js:541:32)
at loader (/Users/willin/.nvm/versions/node/v6.2.0/lib/node_modules/.babel-cli_npminstall/babel-register/6.11.6/babel-register/lib/node.js:148:5)
at Object.require.extensions.(anonymous function) [as .js] (/Users/willin/.nvm/versions/node/v6.2.0/lib/node_modules/.babel-cli_npminstall/babel-register/6.11.6/babel-register/lib/node.js:158:7)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
at Module.require (module.js:468:17)
Test2:
bablrc:
{
"presets": [
"es2015-loose",
"stage-1"
],
"plugins": [
"proxy",
"transform-runtime"
]
}
test.js:
exports.test = 123;
demo.js:
import test from './test';
console.log(test.test);
err msg:
obj[propName] = val;
^
TypeError: Cannot create property '123' on string 'test'
at Object.set (test.js:8:9)
at globalSetInterceptor (test.js:43:20)
at Object.<anonymous> (test.js:11:1)
at Module._compile (module.js:541:32)
at loader (/Users/willin/.nvm/versions/node/v6.2.0/lib/node_modules/.babel-cli_npminstall/babel-register/6.11.6/babel-register/
lib/node.js:148:5)
at Object.require.extensions.(anonymous function) [as .js] (/Users/willin/.nvm/versions/node/v6.2.0/lib/node_modules/.babel-cli
_npminstall/babel-register/6.11.6/babel-register/lib/node.js:158:7)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
at Module.require (module.js:468:17)
if remove babel proxy plugin
returns:
123
Test3:
test.js
exports.test = () => 123;
err msg:
obj[propName] = val;
^
TypeError: Cannot create property 'function () {
return 123;
}' on string 'test'
at Object.set (test.js:8:9)
at globalSetInterceptor (test.js:43:20)
at Object.<anonymous> (test.js:11:1)
at Module._compile (module.js:541:32)
at loader (/Users/willin/.nvm/versions/node/v6.2.0/lib/node_modules/.babel-cli_npminstall/babel-register/6.11.6/babel-register/lib/node.js:148:5)
at Object.require.extensions.(anonymous function) [as .js] (/Users/willin/.nvm/versions/node/v6.2.0/lib/node_modules/.babel-cli_npminstall/babel-register/6.11.6/babel-register/lib/node.js:158:7)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
at Module.require (module.js:468:17)
without this plugin
use
babel-node --harmony-proxies demo.js
it's ok
perhaps https://github.com/samshull/node-proxy may help