Javascript 为什么我的ES6有不同的导出(exports | | exports.default+;named)取决于导入的范围?
我有一个yargs脚本: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,
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。第二个输出似乎不完整。我说不出你认为的区别是什么。它是完整的。两个包使用相同的巴别塔版本吗?代码是如何传输的?你看过巴贝尔制作的文件了吗?