0

我正在使用 SharePoint 中的 SPFx 框架,该框架将包含打字稿文件。我在我的应用程序中使用 SPServices.js 和 app.js(自定义 js 文件)。在 config.json 文件中,我使用如下:

"externals": {
    "jQuery":{
      "path":"node_modules/jquery/dist/jquery.min.js",
      "globalName": "jQuery1"
    },
    "AppScript":{
      "path":"/src/webparts/calendarEvents/app.js",
      "globalName": "AppScript",
      "globalDependencies": [
        "jQuery",
        "SPServices"      
      ]
    },
    "SPServices": {  
      "path": "/src/webparts/calendarEvents/jquery.SPServices.min.js",  
      "globalName": "SPServices" ,
      "globalDependencies": [
        "jQuery"
      ] 
    }
}

如果我使用以下语法,它在我的 .ts 文件中工作

require('SPServices')
require('AppScript')

但不是上述语法,我想将它们作为对象导入,以便我可以访问这些文件中的函数。为了做到这一点,我使用 as

import * as SPServices from 'SPServices';
import * as myScript from 'AppScript';

但这些都行不通。它给出了错误。

Resource "SPServices" not found in loader configuration of manifest for component "b052328a-ad75-4056-af7f-7bc8b3e795fc" (CalendarEventsWebPart)

但奇怪的是,同一行在import * as SPServices from 'SPServices';另一个 .ts 文件中运行良好。它没有给出任何这样的错误。我真的很困惑这里出了什么问题。

为什么在将文件添加到 js、css 文件等打字稿时会出现太多混乱?

4

1 回答 1

0

SPServices 是在 CommonJS 模块用于导入功能之前编写的。它通过扩展 jQuery 来工作。试试这个:

import * as jQuery from 'jQuery';
require('SPServices');

$().SPServices.doStuff();

有关此用例的更多信息,请参阅 Microsoft 文档部分加载依赖于另一个库的库。

于 2017-12-22T15:31:05.303 回答