我设置了一个项目,它使用Typescript
并RequireJS
加载依赖项。我无法让wijmo.grid
依赖项工作。
我从 Grapecity 的快速入门手册开始,并将其调整为我的 Typescript 和 RequireJs 组合。
这就是我想要做的test.ts
:
import { FlexGrid} from '@grapecity/wijmo.grid';
export class TestViewModel {
constructor() {
let grid = new FlexGrid('#hostElement');
}
}
脚本标签:
<script src="~/lib/requirejs/require.js"></script>
<script src="~/js/require-config.js"></script>
<script>
require(
["my-test"],
function (myTest) {
var viewModel = new myTest.TestViewModel();
}
);
</script>
这是我的require-config.ts
:
declare var require: any;
require.config({
baseUrl: "/",
paths: {
"jquery": [
"https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery",
"lib/jquery/dist/jquery-3.4.1"
],
"knockout": [
"https://cdnjs.cloudflare.com/ajax/libs/knockout/3.5.0/knockout-debug",
"lib/knockout/knockout-3.5.0.debug"
],
"@grapecity/wijmo.grid": [
"lib/@grapecity/wijmo.grid/es5-esm"
],
"my-test": "js/test"
},
waitSeconds: 15
});
这是我的tsconfig.json
:
{
"compileOnSave": true,
"compilerOptions": {
"strict": true,
"noEmitOnError": true,
"sourceMap": true,
"removeComments": false,
"target": "es5",
"outDir": "wwwroot/js/",
"module": "amd",
"moduleResolution": "node",
"lib": [
"es6",
"dom"
]
},
"exclude": [
"wwwroot"
]
}
现在,当我访问该页面时,我希望它可以正常工作,但出现错误:
SyntaxError: import declarations may only appear at top level of a module (es5-esm.js:14:365)
我在这里做错了什么?
编辑:
我还尝试在以下位置使用索引模块require-config.ts
:
"@grapecity/wijmo.grid": [
"lib/@grapecity/wijmo.grid/index"
],
这会导致不同的错误:
ReferenceError: exports is not defined (index.js:14:379)
似乎 wijmo 模块是针对其他模块加载器构建的,或者我仍然缺少一些配置。