我有以下问题:我导入了一个上传到 npm 的库 OpenDolphin,它似乎是在 TS 中实现的,带有一个带有所有导出声明的 main.js。
我尝试在我的 TypeScript 代码中使用该库,如下所示:
import { OpenDolphin, ClientDolphin } from 'openDolphin/main';
然后我尝试使用这个:
let builder = OpenDolphin.makeDolphin();
将其转换为 ES5 后,我在 chrome 中收到以下错误:
SyntaxError: Unexpected token export
似乎包含导出语句的库的 main.js 以某种方式未处理,只是附加到最终的 dist 文件:
//snipped from the final js file
/* 469 */
/***/ function(module, exports) {
export { Attribute } from './js/dolphin/Attribute';
...all the rest of OpenDolphin export statements.
}
对我来说,作为一个 TS(JS 工具链)初学者,这个库似乎没有被正确处理/转译或类似的东西。
我的设置:
包.json:
{
"name": "FrontendExample",
"version": "1.0.0",
"private": false,
"description": "",
"author": "<AUTHOR>",
"license": "MIT",
"preferGlobal": false,
"scripts": {
"build": "webpack --display-error-details"
},
"dependencies": {
"@cycle/rxjs-run": "3.2",
"@cycle/dom": "12.2.0",
"@cycle/isolate": "1.4.x",
"OpenDolphin": "1.0.1",
"core-js": "2.4.1",
"rxjs": "5.0.1",
"ts-helpers": "1.1.2",
"xstream": "9.2"
},
"devDependencies": {
"@types/node": "6.0.42",
"ts-node": "1.2.1",
"tslint": "4.1.1",
"typescript": "2.0.3",
"typings": "2.1.0",
"ts-loader": "^0.8.2",
"webpack": "^1.13.1"
}
}
webpack.config.js:
var webpack = require('webpack');
module.exports = {
entry: './src/app.ts',
output: {
filename: './dist/main.js'
},
// Turn on sourcemaps
devtool: 'source-map',
resolve: {
extensions: ['', '.webpack.js', '.web.js', '.ts', '.js']
},
// Add minification
// plugins: [
// new webpack.optimize.UglifyJsPlugin()
// ],
module: {
loaders: [
{ test: /\.ts$/, loader: 'ts' }
]
}
};
更新 1:
只导入
import { OpenDolphin, ClientDolphin, ClientPresentationModel, ClientAttribute, Tag } from 'openDolphin';
没有帮助,同样的错误仍然存在。但是,Intellij 还会将 TS-File 中的导入标记为红色。我...不确定 OpenDolphin npm 包是否正确:它只包含一个 main.js、main.d.ts、一个没有 browserify、babelify 或其他提示的 package.json,一个包含所有*.ts 文件...?