Rollup 将我的主要 class 名称(SDK)替换为 default() 名称
Rollup replace my main class name (SDK) for default() name
我正在开发一个库,在我开始进行单元测试之前它一直运行良好。直到几天前,我可以通过以下方式实例化我的库:
this.belpay = new belpay.SDK('test', {
username: 'username',
password: 'password',
key: 'abc-def',
});
在我的 chrome 控制台中:
现在我出现以下错误:
要消除此错误,我必须执行以下操作:
this.belpay = new belpay.default('test', {
username: 'username',
password: 'password',
key: 'abc-def',
});
我不明白为什么现在它显示我默认。我一直在 rollup.config.js
中设置此设置
import nodePolyfills from 'rollup-plugin-node-polyfills';
import babel from 'rollup-plugin-babel';
import serve from 'rollup-plugin-serve';
import commonjs from '@rollup/plugin-commonjs';
import livereload from 'rollup-plugin-livereload';
import { terser } from 'rollup-plugin-terser';
import json from 'rollup-plugin-json';
export default {
input: 'src/index.js',
context: 'window',
output: [
{
file: 'dist/belpay.js',
format: 'umd',
name: 'belpay',
exports: 'named',
globals: ['axios'],
},
{
file: 'dist/belpay.min.js',
format: 'umd',
name: 'belpay',
plugins: [terser()],
exports: 'named',
},
],
external: ['axios'],
plugins: [
babel({
exclude: ['node_modules/**'],
runtimeHelpers: true,
}),
nodePolyfills(),
serve({
host: 'localhost',
port: 1234,
contentBase: 'dist',
historyApiFallback: true,
allowCrossOrigin: true,
}),
commonjs({
include: 'node_modules/axios/**',
}),
livereload({
watch: 'dist',
verbose: true,
}),
json(),
],
};
[编辑]
我的入口文件的内容 (src/index.js):
export default class SDK {
#myvar= '';
#myobject = {};
method1() {}
method2() {}
}
这样我就可以在 dist/index.html
中导入库
<!-- html content -->
...
<!-- at the end of the body tag. -->
<script type="module" src="./belpay.js"></script>
<script type="text/javascript">
this.belpay = new belpay.SDK();
</script>
这很奇怪,因为在周五(我们一周的最后一个工作日),我让它运行良好,但在周一我无法再进行测试。我没有做任何更改。
欢迎提出任何改进此文件的建议。
我发现了问题。我在做:
export default class SDK {}
必须做的事情:
export class SDK {}
我没有设置 'default'。
我正在开发一个库,在我开始进行单元测试之前它一直运行良好。直到几天前,我可以通过以下方式实例化我的库:
this.belpay = new belpay.SDK('test', {
username: 'username',
password: 'password',
key: 'abc-def',
});
在我的 chrome 控制台中:
现在我出现以下错误:
要消除此错误,我必须执行以下操作:
this.belpay = new belpay.default('test', {
username: 'username',
password: 'password',
key: 'abc-def',
});
我不明白为什么现在它显示我默认。我一直在 rollup.config.js
中设置此设置import nodePolyfills from 'rollup-plugin-node-polyfills';
import babel from 'rollup-plugin-babel';
import serve from 'rollup-plugin-serve';
import commonjs from '@rollup/plugin-commonjs';
import livereload from 'rollup-plugin-livereload';
import { terser } from 'rollup-plugin-terser';
import json from 'rollup-plugin-json';
export default {
input: 'src/index.js',
context: 'window',
output: [
{
file: 'dist/belpay.js',
format: 'umd',
name: 'belpay',
exports: 'named',
globals: ['axios'],
},
{
file: 'dist/belpay.min.js',
format: 'umd',
name: 'belpay',
plugins: [terser()],
exports: 'named',
},
],
external: ['axios'],
plugins: [
babel({
exclude: ['node_modules/**'],
runtimeHelpers: true,
}),
nodePolyfills(),
serve({
host: 'localhost',
port: 1234,
contentBase: 'dist',
historyApiFallback: true,
allowCrossOrigin: true,
}),
commonjs({
include: 'node_modules/axios/**',
}),
livereload({
watch: 'dist',
verbose: true,
}),
json(),
],
};
[编辑]
我的入口文件的内容 (src/index.js):
export default class SDK {
#myvar= '';
#myobject = {};
method1() {}
method2() {}
}
这样我就可以在 dist/index.html
中导入库<!-- html content -->
...
<!-- at the end of the body tag. -->
<script type="module" src="./belpay.js"></script>
<script type="text/javascript">
this.belpay = new belpay.SDK();
</script>
这很奇怪,因为在周五(我们一周的最后一个工作日),我让它运行良好,但在周一我无法再进行测试。我没有做任何更改。
欢迎提出任何改进此文件的建议。
我发现了问题。我在做:
export default class SDK {}
必须做的事情:
export class SDK {}
我没有设置 'default'。