【问题标题】:Can not run angular2 in commonjs way无法以 commonjs 方式运行 angular2
【发布时间】:2016-11-16 18:54:30
【问题描述】:

首先,我不知道package.json 中@angularangular2 的区别。 但我喜欢 package.json 中的 angular2 方式。 这是我的github source

问题是我在tsconfig_c.json中不能把“system”改成“commonjs”,否则angular2会抛出我看不懂的错误。

HTML:

<!DOCTYPE html>
<html>
<!-- #docregion head -->
<!-- #docregion base-href -->

<head>
  <base href="/" />
  <!-- #enddocregion base-href -->
  <title>Angular 2 Seed</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  
  <!-- #docregion css -->
  <link rel="stylesheet" href="styles.css">
  <!-- #enddocregion css -->

  <!-- 1. Load libraries -->
  <script src="libs/angular2-polyfills.js"></script>
  <script src="libs/system.src.js"></script>
  <script src="libs/Rx.js"></script>
  <script src="libs/angular2.dev.js"></script>
  <script src="libs/router.dev.js"></script>

  <!-- 2. Configure SystemJS -->
  <script>
      System.config({
        packages: {        
          app: {
            format: 'register',
            defaultExtension: 'js'
          }
        }
      });
      System.import('app/bootstrap')
            .then(null, console.error.bind(console));
    </script>
</head>
<!-- 3. Display the application -->

<body>
  <my-app>Loading...</my-app>
</body>

</html>

配置:

{
  "compilerOptions": {
    "target": "es5",
    "module": "system",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "removeComments": false,
    "noImplicitAny": true,
    "suppressImplicitAnyIndexErrors": true
  },
  "exclude": [
    "node_modules"
  ]
}

如果编译“系统”的方式,一切都很好。但我更喜欢“commonjs”的方式。 谁能帮我解决这个问题?

【问题讨论】:

  • 当 angular2 处于测试阶段时,它曾经使用 angular2 表示包,当 Angular2 进入候选发布 (RC) 版本时,它们将包重命名为 @angular。如果您是从新项目开始,那么我建议您使用最新的 angular2 版本(2.0.0-rc.4)。

标签: typescript angular gulp commonjs


【解决方案1】:

正如@Sanket 所说,angular2 包是 Angular 2 的旧 beta 版本。关于你的问题,如果你在 commonjs 中编译,你必须告诉 SystemJs 你的应用程序在 commonjs,所以你必须更改index.html 的配置:

  System.config({
    packages: {        
      app: {
        format: 'cjs', // commonjs
        defaultExtension: 'js'
      }
    }
  });

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-10
  • 1970-01-01
  • 2019-01-15
相关资源
最近更新 更多