Angular Cli包含外部脚本,就像在窗口中一样

时间:2016-11-29 14:15:02

标签: angular

Angular cli文档声明:

  

有些javascript库需要添加到全局范围中,并且   加载就像它们在脚本标记中一样。我们可以使用   apps [0] .scripts和apps [0] .styles属性angular-cli.json。

但是我试图包含一个第三方脚本,它应该在窗口中添加一个变量"scripts": [ // jQuery, bootstrap, etc... "../node_modules/bootstrap-tour/build/js/bootstrap-tour.min.js"

Tour

从窗口访问Tour时,我认为undefinedTour

如果我使用脚本标记包含完全相同的脚本,则窗口上的declare const Tour就好了。在这个例子中我不关心打字(这个库没有)。我错过了一步吗?

我使用的解决方法是将静态JS文件放在assets文件夹中 - 问题是我必须将所有依赖项放在assets文件夹中,但是如果可能的话我希望将它们捆绑在一起。

编辑:我访问Tour的方式是通过开发人员控制台 - 它应该在窗口上(并且是静态包含的)。在TypeScript中,我使用IN(),它在静态包含时也可以使用。

1 个答案:

答案 0 :(得分:0)

我通过在index.ts中调用require来解决此问题,将其包含在angular-cli.json中后我需要的文件。

angular-cli.json

  "scripts": [
    ...
    "../node_modules/moment/moment.js",
    "../node_modules/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js"
  ]

index.ts

declare const require;
require('moment/moment.js');
require('eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js');
export * from './environment';
export * from './app.component';
export * from './app.module';

如果有人知道更合适的方式,请告诉我!