Javascript 在浏览器中使用的Transfile类型脚本

Javascript 在浏览器中使用的Transfile类型脚本,javascript,typescript,browserify,Javascript,Typescript,Browserify,我正在尝试用Typescript编写前端代码,并希望导出代码,以便浏览器加载 我通过browserify和tsify这样做。我的问题是,在全局命名空间中无法访问代码上的not。当然,在标记中加载脚本将执行它,但是如果我希望它像可在内联中使用的函数库一样加载,该怎么办 更新 例如 索引 使用以下conf进行编译将生成以下javascript tsconfig.json index.js 这很好。但是,如果index.js导入了一些东西,例如mynotification函数,那么我就会得到这个 (

我正在尝试用Typescript编写前端代码,并希望导出代码,以便浏览器加载

我通过browserify和tsify这样做。我的问题是,在全局命名空间中无法访问代码上的not。当然,在
标记中加载脚本将执行它,但是如果我希望它像可在内联
中使用的函数库一样加载,该怎么办

更新

例如

索引

使用以下conf进行编译将生成以下javascript

tsconfig.json

index.js

这很好。但是,如果index.js导入了一些东西,例如my
notification
函数,那么我就会得到这个

(function (factory) {
    if (typeof module === 'object' && typeof module.exports === 'object') {
        var v = factory(require, exports); if (v !== undefined) module.exports = v;
    }
    else if (typeof define === 'function' && define.amd) {
        define(["require", "exports", "./notifications"], factory);
    }
})(function (require, exports) {
    "use strict";
    var notifications_1 = require("./notifications");
    notifications_1.notification("blerp");
    function foo() {
        console.log("bar");
    }
});
现在,
foo
被包装在某个范围内,当我将其加载到我的网站时,它不可用:


在模块加载作为本机JavaScript功能进入浏览器之前,您可以使用诸如RequireJS或SystemJS之类的库来加载模块

使用RequireJS时,只需传递编译器选项:

-module UMD
然后将RequireJS指向主文件:

<script src="require.js" data-main="app"></script>


然后按需异步加载模块,使用寿命良好。

模块加载是否符合要求?如果我的主文件导入/需要一些文件,而不是在传输的代码中留下“require”语句,那么所需的文件就不能被连接起来吗?是的,模块加载是如此容易派生,它正在成为本机ECMAScript功能。文件整理只会帮你到目前为止。。。“捆绑和模块加载之间的差别在规模的左边(即少量代码)是不可见的,并且大量地支持在极右最右边的模块。”好阅读。现在,我的.ts源文件位于require.js旁边的静态文件夹中。我已经用
-module UMD
编译了.ts文件。现在,我用require.js加载编译后的.js文件,如您所示。但是,我仍然无法访问这些函数。它们似乎在一个隐藏的范围内。您可以分享一个简短的代码示例。当您使用UMD编译时,您应该在JavaScript中看到您导入的模块被分配给了一个变量。如果你分享一个你是如何导入的例子,那会有所帮助。我用一些代码例子更新了我的问题。希望这能对形势有所启示。作为一个临时修复,我正在编写小的ts模块来导入我的库并执行所需的函数,这样我就可以在需要时导入这样一个模块,而不是在每个页面上的脚本标记中包含这些代码。我想这也没关系,但不是我最初想说的,只是想说清楚,你有多个typescript文件,你正在使用browserfy来编译它们。然后,您希望这些功能在全球范围内可用吗?
(function (factory) {
    if (typeof module === 'object' && typeof module.exports === 'object') {
        var v = factory(require, exports); if (v !== undefined) module.exports = v;
    }
    else if (typeof define === 'function' && define.amd) {
        define(["require", "exports", "./notifications"], factory);
    }
})(function (require, exports) {
    "use strict";
    var notifications_1 = require("./notifications");
    notifications_1.notification("blerp");
    function foo() {
        console.log("bar");
    }
});
foo is undefined
-module UMD
<script src="require.js" data-main="app"></script>