Javascript 为什么我的ES6有不同的导出(exports | | exports.default+;named)取决于导入的范围?

Javascript 为什么我的ES6有不同的导出(exports | | exports.default+;named)取决于导入的范围?,javascript,node.js,ecmascript-6,es6-modules,Javascript,Node.js,Ecmascript 6,Es6 Modules,我有一个yargs脚本: constpkg=require(join(argv.path,'package.json'); const exported=require(join(argv.path,pkg.main)); console.log(导出); 如果我试图在yargs脚本包中阅读此源代码,请参见pkg.main: 从“站点服务”导入站点服务,{SiteFunction}; export const siteService=new siteService('管理'{ id:1000,

我有一个yargs脚本:

constpkg=require(join(argv.path,'package.json');
const exported=require(join(argv.path,pkg.main));
console.log(导出);
如果我试图在yargs脚本包中阅读此源代码,请参见pkg.main:

从“站点服务”导入站点服务,{SiteFunction};
export const siteService=new siteService('管理'{
id:1000,
其他小岛屿发展中国家:1000,
});
export const siteFunction=新建siteFunction(siteService{
id:1000,
其他小岛屿发展中国家:1000,
});
导出默认站点服务;
出口的价值为:

{siteService:
站点服务{
名称:'管理',
配置:{id:1000,othersIds:1000},
siteFunctionList:[]},
站点功能:
站点功能{
网站服务:
站点服务{
名称:'管理',
配置:[对象],
siteFunctionList:[]},
配置:{id:1000,othersIds:1000},
违约:
站点服务{
名称:'管理',
配置:{id:1000,othersIds:1000},
siteFunctionList:[]}
如果我阅读包含此内容的不同模块的
pkg.main

从“React”导入React;
从“ra核心/lib/Resource”导入资源;
从“反应路由器dom/路由”导入路由;
从“站点服务”导入站点服务,{SiteFunction};
const siteService=new siteService('管理'{
id:1000,
otherid:[1,2],
});
进口{
用户列表,
用户创建,
用户sedit,
用户演示,
}来自“./resources/users”;
export const siteFunction=new siteFunction(siteService,({页面、角色、权限})=>[
,
],({页面,角色})=>[
],({页面,角色})=>[
{
名称:'管理',
重定向:对,
发件人:“/management”,
致:“/”,
说明:'管理',
},
]);
导出默认站点功能;
我有以下输出

SiteFunction{
网站服务:
站点服务{
名称:'管理',
配置:{id:1000,otherid:[Array]},
siteFunctionList:[]},
配置:[函数]}
babel.config.js
中的两个项目babel配置:

{
  only: [
    'src',
    'styleguide',
  ],
  comments: false,
  presets: [
    [
      '@babel/preset-env',
      {
        modules: false,
      },
    ],
    '@babel/preset-react',
  ],
  plugins: [
    'babel-plugin-array-includes',
    '@babel/plugin-transform-runtime',
    '@babel/plugin-transform-async-to-generator',
    '@babel/plugin-proposal-class-properties',
    '@babel/plugin-syntax-dynamic-import',
    '@babel/plugin-syntax-import-meta',
    '@babel/plugin-proposal-json-strings',
    [
      '@babel/plugin-proposal-decorators',
      {
        legacy: true,
      },
    ],
  ],
  env: {
    production: {
      plugins: [
        'babel-plugin-add-module-exports',
        '@babel/plugin-transform-modules-commonjs',
      ],
    },
    test: {
      plugins: [
        '@babel/plugin-transform-modules-commonjs',
        'babel-plugin-dynamic-import-node',
      ],
    },
  },
}
在这两种情况下,
pkg.main
导入的是ES6语法
,而
yargs
脚本运行的是ES5传输文件

  • 我认为这不好,对吗
  • 错误发生在哪里?两个项目都有相同的巴别塔配置
  • 在我的脚本中,我应该假设这两种情况都可以发生,并且我应该同时支持这两种情况吗

  • 你确定这是有效的吗<代码>[,]它相当于
    React.createElement
    ,是的,它是有效的,巴贝尔没有抱怨jsx。第二个输出似乎不完整。我说不出你认为的区别是什么。它是完整的。两个包使用相同的巴别塔版本吗?代码是如何传输的?你看过巴贝尔制作的文件了吗?