babel-plugin-proxy icon indicating copy to clipboard operation
babel-plugin-proxy copied to clipboard

TypeError: Cannot create property '[object Object]' on string 'exports'

Open willin opened this issue 9 years ago • 3 comments

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)

willin avatar Aug 13 '16 00:08 willin

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

willin avatar Aug 13 '16 01:08 willin

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)

willin avatar Aug 13 '16 01:08 willin

without this plugin

use

babel-node --harmony-proxies demo.js

it's ok

perhaps https://github.com/samshull/node-proxy may help

willin avatar Aug 20 '16 02:08 willin