【问题标题】:How to order angular-cli scripts如何订购 angular-cli 脚本
【发布时间】:2016-10-10 18:12:01
【问题描述】:

我的angular-cli.json 有以下内容:

...
"scripts": [
    ... 
    "../node_modules/jquery-ui/ui/widget.js",
    "../node_modules/jquery-ui/ui/widgets/datepicker.js",
    "../node_modules/jquery-ui-timepicker-addon/dist/jquery-ui-timepicker-addon.js",
    ...
],
...

https://github.com/trentrichardson/jQuery-Timepicker-Addon/blob/master/dist/jquery-ui-timepicker-addon.js#L15 我得到Uncaught TypeError: Cannot read property 'timepicker' of undefined。我发现这是因为 webpack 按以下顺序加载脚本:

jquery-ui-timepicker-addon.js
widget.js
datepicker.js

widget.js 需要在jquery-ui-timepicker-addon.js 之前加载。为什么 webpack 的加载顺序与配置不同,如何确定文件加载的顺序?

【问题讨论】:

  • 我也有同样的问题。仍在寻找解决方案。
  • 我目前的解决方法是在 index.html 的 head 标记中硬编码 CDN,用于必须按特定顺序加载的所有内容。
  • 成功了吗?你提出问题了吗?
  • 不,不。自从我开始对所有与 jquery 相关的内容使用 CDN 后,我就没有重新讨论过这个问题。

标签: angular webpack angular-cli


【解决方案1】:

目前不支持(从 beta.24 开始)。

您可能需要打开一个新的 Github 问题以根据 angular-cli.json 配置维护脚本顺序。

您可以尝试的另一个选项是从 TypeScript 导入文件。

【讨论】:

  • 在 typescript 中导入对我没有帮助,因为我不需要直接使用这些库,但我使用的库需要在全局范围或命名空间或窗口中加载这些库(例如一个脚本标签)
【解决方案2】:

脚本确实按照它们在angular-cli.json 中的顺序加载,Uncaught TypeError: Cannot read property 'timepicker' of undefined 是对在jquery-ui/ui/version.js 中定义的$.ui 而不是jquery-ui/ui/widget.js 执行的。

我的错。

...虽然它们看起来确实因为数字而以错误的顺序加载,但它们以正确的顺序加载... https://github.com/angular/angular-cli/issues/3782#issuecomment-269883288

【讨论】:

    猜你喜欢
    • 2023-01-30
    • 1970-01-01
    • 2019-06-05
    • 2018-03-24
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    相关资源
    最近更新 更多