编程语言
首页 > 编程语言> > javascript – SystemJS,Angular2:在min / dev包之间切换

javascript – SystemJS,Angular2:在min / dev包之间切换

作者:互联网

我想以这种方式使用Angular2和SystemJS,这样我就可以轻松地在生产和开发之间切换.在开发中,我更喜欢使用每个文件的类,而不是在生产中我想使用单个最小化的angular2 bundle.

目前我有以下index.html和config.js:

indexl.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" type="text/css" href="/node_modules/bootstrap/dist/css/bootstrap.css"/>
    <script type="text/javascript" src="/node_modules/angular2/bundles/angular2-polyfills.js"></script>
    <script type="text/javascript" src="/node_modules/systemjs/dist/system.js"></script>
    <script type="text/javascript" src="/js/config.js"></script>
    <script>
        System.import('ts/main.ts').catch(console.error.bind(console));
    </script>
</head>
<body>
<my-app>Loading...</my-app>
</body>
</html>

config.js:

System.config({
    transpiler: 'typescript',

    typescriptOptions: {
        emitDecoratorMetadata: true
    },

    map: {
        'angular2': '/node_modules/angular2',
        'rxjs': '/node_modules/rxjs'
    },

    paths: {
        'typescript': 'node_modules/typescript/lib/typescript.js',
        'http': 'node_modules/angular2/bundles/http.dev.js'
    },

    packages: {
        angular2: {
            defaultExtension: 'js'
        },
        rxjs: { defaultExtension: 'js' },
    }
});

题:

上面的代码适用于开发.请建议如何更改System.config以便从单个/node_modules/angular2/bundles/angular2.min.js中使用angular2.将angular2.min.js添加到< script ...>< / script>不是一个选项,因为在这种情况下我将无法动态切换dev和min包(假设index.html是一个静态页面)

解决方法:

实际上,如果要使用/node_modules/angular2/bundles/angular2.min.js,则无需在SystemJ中配置任何内容,因为使用System.register将模块显式注册到此文件中.

因此,您可以从SystemJS配置的地图块中删除angular2.

标签:javascript,systemjs,angular
来源: https://codeday.me/bug/20190711/1431646.html