AngularJS + TypeScript: Uncaught TypeError: Cannot read property 'module' of undefined
AngularJS + TypeScript: Uncaught TypeError: Cannot read property 'module' of undefined
我正在尝试在 AngularJS 1.x 应用程序中使用 TypeScript。
我的应用程序已经使用 Webpack 作为模块加载器,所以我将其配置为处理 TypeScript 编译(在将所有 *.js 源文件重命名为 *.ts 之后)并且我设法让它工作。所以它编译没有错误并生成我的 JavaScript 输出文件。
唯一的问题是,当我 运行 浏览器上的应用程序无法运行时,我收到此控制台错误:
Uncaught TypeError: Cannot read property 'module' of undefined
以及:
Uncaught Error: [$injector:modulerr] Failed to instantiate module myModuleName due to:
Error: [$injector:nomod] Module 'myModuleName' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
我的猜测是对象 angular
由于某种原因为 null,当我尝试访问 angular.module
.
时它会报错
我不明白为什么会这样,因为当我在代码中使用import angular from 'angular/angular';
时它编译成功。
完整的源代码可用 here。
Webpack 输出:
Hash: 824157db8ed6acf47fc1
Version: webpack 2.2.1
Time: 2242ms
Asset Size Chunks Chunk Names
othello-bundle.js 1.27 MB 0 [emitted] [big] app
othello-bundle.js.map 1.51 MB 0 [emitted] app
[0] ./~/angular/angular.js 1.24 MB {0} [built]
[5] ./app/services/othello_AI.ts 8.65 kB {0} [built]
[6] ./app/services/othello_handler.ts 9.3 kB {0} [built]
[7] ./app/index.ts 723 bytes {0} [built]
+ 4 hidden modules
我终于找到了解决办法。
使用 TypeScript 时,AngularJS 需要使用以下方式导入:
import * as angular from 'angular';
问题是我仍然像使用 es6 一样导入它:
import angular from 'angular';
我正在尝试在 AngularJS 1.x 应用程序中使用 TypeScript。
我的应用程序已经使用 Webpack 作为模块加载器,所以我将其配置为处理 TypeScript 编译(在将所有 *.js 源文件重命名为 *.ts 之后)并且我设法让它工作。所以它编译没有错误并生成我的 JavaScript 输出文件。
唯一的问题是,当我 运行 浏览器上的应用程序无法运行时,我收到此控制台错误:
Uncaught TypeError: Cannot read property 'module' of undefined
以及:
Uncaught Error: [$injector:modulerr] Failed to instantiate module myModuleName due to: Error: [$injector:nomod] Module 'myModuleName' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
我的猜测是对象 angular
由于某种原因为 null,当我尝试访问 angular.module
.
我不明白为什么会这样,因为当我在代码中使用import angular from 'angular/angular';
时它编译成功。
完整的源代码可用 here。
Webpack 输出:
Hash: 824157db8ed6acf47fc1
Version: webpack 2.2.1
Time: 2242ms
Asset Size Chunks Chunk Names
othello-bundle.js 1.27 MB 0 [emitted] [big] app
othello-bundle.js.map 1.51 MB 0 [emitted] app
[0] ./~/angular/angular.js 1.24 MB {0} [built]
[5] ./app/services/othello_AI.ts 8.65 kB {0} [built]
[6] ./app/services/othello_handler.ts 9.3 kB {0} [built]
[7] ./app/index.ts 723 bytes {0} [built]
+ 4 hidden modules
我终于找到了解决办法。
使用 TypeScript 时,AngularJS 需要使用以下方式导入:
import * as angular from 'angular';
问题是我仍然像使用 es6 一样导入它:
import angular from 'angular';