当前位置: 首页 > 面试题库 >

为什么将Webpack捆绑为“ System.register”

巫坚白
2023-03-14
问题内容

我正在尝试使用webpack开发angular2应用,但最终在浏览器控制台中显示错误:Uncaught ReferenceError:未定义系统。

当我查看捆绑的js时,发现它正在使用System.register,如下所示:

function(module, exports) {

    System.register(['angular2/platform/browser', './app.component'], function(exports_1) {
        var browser_1, app_component_1;
        return {
            setters:[
                function (browser_1_1) {
                    browser_1 = browser_1_1;
                },
                function (app_component_1_1) {
                    app_component_1 = app_component_1_1;
                }],
            execute: function() {
                browser_1.bootstrap(app_component_1.AppComponent);
            }
        }
    });
    // ...

我的webpack.config.js非常简单,如下所示:

var webpack = require('webpack');

module.exports = {
    context: __dirname,
    entry: "./app/boot.ts",
    devtool: 'inline-sourcemap',

    output: {
        path: __dirname + "/dist",
        filename: "bundle.js"
    },

    module: {
        loaders: [
            {test: /\.ts$/, loader: 'ts-loader'}
        ]

    }
};

谁能为我修复?谢谢。


问题答案:

正如@Ron建议的

如果您使用Webpack捆绑应用程序,则必须将代码转换为commonjs。解决方案是更改modulecommonjstsconfig.json中的。

// tsconfig.json
"module" : "commonjs"

这是使用webpack的angular2种子存储库的列表,可能会有所帮助

  • ng2-webpack-play由@ pkozlowski-opensource提供
  • @ gdi2290提供的angular2-webpack-starter
  • ng2-webpack by @ocombe

另外,我建议您观看AngularConnect2015的Pawel撰写的Angular2应用程序的模块化和打包



 类似资料:
  • 设置: 具有一个片段的活动,该片段通过单击按钮进行实例化。在fragment的构造函数中,使用了Bundle。在Bundle和ArrayList中 问题:分离片段时,字符串(姓氏)会按预期销毁,但数组列表会持续存在。因此,在调用片段的新实例时,会出现前一个ArrayList条目。回调不是问题所在。该行为也会在没有回调的情况下出现。 我已经检查了变量(和)和在点片段构造函数(),片段在方法()和片段

  • 我正在构建一个应用程序,我正在使用FCM通知。当用户点击notification时,我想将他发送到Main Activity上的Fragment1(这是片段的名称)。我使用intent.putExtra完成了这一操作,但在主活动中,我将Bundle extras=getIntent().getExtras(),我有空指针异常。为什么我没有Putextra的东西? } 我的logcat

  • 问题内容: 因此,现在我正在使用一个原型,其中我们将webpack(用于构建.tsx文件和复制.html文件)与webpack-dev- server之间的组合用于开发服务。您可以假设我们也将React和ReactDOM用作两个库依赖项。我们当前的构建输出是以下结构: 这会将所有模块(包括库相关性放入大捆绑文件中)放置。我希望最终结果如下所示: 我在index.html和.tsx文件的import

  • 对我来说,Webpack是“web”的捆绑器,因为浏览器对js模块系统没有很好的支持。因此,使用Webpack,我们仍然可以使用“模块”的方式来为浏览器开发和打包它们。 Webpack有一个配置选项目标 使用webpack将编译以在类似node.js的环境中使用 但是NodeJS已经支持了公共JS模块,为什么需要Webpack来构建在NodeJS环境中运行的东西? 此外,如果您想编译javascr

  • 我有一个使用react开发的网站,它只有一个页面,但产品包大小是1.11MIB。我正在使用firestore、firebase storage、material UI、react redux,该应用程序运行良好,除了捆绑包大小外,一切正常。 我的网页包配置文件 我不知道我在这里错过了什么来减小节点模块的大小。如果我们有任何其他选择,以减少捆绑大小,请给我一个建议。

  • 我正在制作一个运行在karaf 4.0.4上的osgi应用程序。 我的应用程序使用一个PostgreSQL数据库。连接器由pax jdbc处理。我使用Karaffeature和功能。 一些模块提供可以添加/删除的服务。 TL/DR:有没有办法将我的实体拆分成多个包? 以下是我的情况: 我目前有一个名为model的模块 我的文件 类注释 注释的类和 访问我实体的服务 这是我的持久性文件: 以及用于访