Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript typescript/es6+;browserify&x2B;babelify:导出不可见_Javascript_Typescript_Ecmascript 6_Browserify_Babeljs - Fatal编程技术网

Javascript typescript/es6+;browserify&x2B;babelify:导出不可见

Javascript typescript/es6+;browserify&x2B;babelify:导出不可见,javascript,typescript,ecmascript-6,browserify,babeljs,Javascript,Typescript,Ecmascript 6,Browserify,Babeljs,我正在尝试开发一个用Typescript编写的库,并将其转换成一个独立的es5包。如果我只使用一个.ts,它就会工作。否则就不行了 下面是一个不起作用的例子 src/A.ts export function fun1() { return "fun1"; } export function fun2() { return "fun2"; } (function(f){if(typeof exports... "use strict"; Object.defineProper

我正在尝试开发一个用Typescript编写的库,并将其转换成一个独立的es5包。如果我只使用一个.ts,它就会工作。否则就不行了

下面是一个不起作用的例子

src/A.ts

export function fun1() {
    return "fun1";
}
export function fun2() {
    return "fun2";
}
(function(f){if(typeof exports...
"use strict";

Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.fun1 = fun1;

function fun1() {
    return "fun1";
}

},{}],2:[function(require,module,exports){
"use strict";

Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.fun2 = fun2;

function fun2() {
    return "fun2";
}

},{}]},{},[1,2])(2)
});
src/B.ts

export function fun1() {
    return "fun1";
}
export function fun2() {
    return "fun2";
}
(function(f){if(typeof exports...
"use strict";

Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.fun1 = fun1;

function fun1() {
    return "fun1";
}

},{}],2:[function(require,module,exports){
"use strict";

Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.fun2 = fun2;

function fun2() {
    return "fun2";
}

},{}]},{},[1,2])(2)
});
e2e/index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

<script src="lib.js"></script>
<script>
    console.log("fun1: " + pizza.fun1());
    console.log("fun2: " + pizza.fun2());
</script>
</body>
</html>
生成的lib.js

export function fun1() {
    return "fun1";
}
export function fun2() {
    return "fun2";
}
(function(f){if(typeof exports...
"use strict";

Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.fun1 = fun1;

function fun1() {
    return "fun1";
}

},{}],2:[function(require,module,exports){
"use strict";

Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.fun2 = fun2;

function fun2() {
    return "fun2";
}

},{}]},{},[1,2])(2)
});
我得到的错误消息是:
uncaughttypeerror:pizza.fun1不是函数
,只有
fun2
pizza
对象中可见

  • 知道fun1为什么不可见以及如何使其可见吗
  • 建议的解决方案稍后还应适用于Typescript
    导出类blah

  • 我不太喜欢的一个解决方案是创建一个公开api的Facade对象。e、 g.
    export-class Facade{public-fun(){return-fun1()+fun2();}
    what-use-babel而不仅仅是使用tsify?一个我不太喜欢的解决方案是创建一个公开api的Facade对象。例如
    export-class Facade{public-fun(){return fun1()+fun2();}
    为什么要使用babel而不仅仅使用tsify?