我正在使用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')
但是我想将它们作为对象导入而不是上述语法,以便我可以访问这些文件内部的功能。为了做到这一点,我正在使用
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文件)时会出现太多混淆?
SPServices 是在 CommonJS 模块用于导入功能之前编写的。它通过扩展jQuery来工作。试试这个:
import * as jQuery from 'jQuery';
require('SPServices');
$().SPServices.doStuff();
有关此用例的更多信息,请参阅Microsoft文档部分加载依赖于另一个库的库。