You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular CLI配置加载外部JS目录报错,如何批量引入整个目录文件?

解决Angular CLI中加载Foundation Sites整个JS目录的问题

错误原因分析

你遇到的EISDIR: illegal operation on a directory错误,其实是因为你用的**/*通配符匹配到了node_modules/foundation-sites/dist/js下的plugins目录,而Angular CLI的scripts配置只能处理文件,没法直接读取目录内容,所以触发了这个错误。

解决方案

不需要逐个手动添加文件,只需要调整glob规则,让它只匹配JS文件,或者分配置处理目录里的文件:

方案1:只加载根目录的JS文件(忽略plugins目录)

修改angular-cli.json中的scripts配置,把glob规则改成只匹配JS文件:

"scripts": [
  {
    "glob": "**/*.js",
    "input": "../node_modules/foundation-sites/dist/js",
    "output": "/js/"
  }
]

**/*.js会递归匹配所有子路径下的JS文件,但不会选中目录本身,这样就能避开plugins目录导致的错误。

方案2:同时加载根目录和plugins里的JS文件

如果你需要用到plugins目录下的插件文件,可以分两个配置项来处理:

"scripts": [
  {
    "glob": "*.js",
    "input": "../node_modules/foundation-sites/dist/js",
    "output": "/js/"
  },
  {
    "glob": "**/*.js",
    "input": "../node_modules/foundation-sites/dist/js/plugins",
    "output": "/js/plugins/"
  }
]

第一个配置加载dist/js根目录下的所有JS文件,第二个配置专门处理plugins目录里的JS文件,这样既不会触发目录读取错误,也能一次性加载所有需要的文件。

补充说明

Angular CLI的assets/scripts配置中,glob规则如果匹配到目录,CLI会尝试读取目录内容,但scripts只能处理文件,所以必须确保你的glob规则只命中文件,或者单独为子目录配置规则。

内容的提问来源于stack exchange,提问作者Denise Mauldin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:45:52