统计信息未通过 node_modules 错误导出 - Rollup
2020-07-06
997
我正在尝试将 stats.js (一个小型 fps 计数器) 添加到我的 three.js 场景中。该项目使用汇总来捆绑所有内容,并且在尝试导入 Stats 后,我不断收到此错误:
import { Stats } from 'stats.js'
错误显示:
[!] Error: 'Stats' is
not exported by node_modules\stats.js\build\stats.min.js, imported by src\main.js
我的汇总配置如下所示:
import resolve from '@rollup/plugin-node-resolve'; // locate and bundle dependencies in node_modules (mandatory)
import { terser } from "rollup-plugin-terser"; // code minification (optional)
export default {
input: 'src/main.js',
output: [
{
format: 'umd',
name: 'LIB',
file: 'build/main.js'
}
],
plugins: [ resolve(), terser() ]
};
Stats 在 stats.js 中导出如下:
export { Stats as default };
我不断浏览 github 上的错误报告,但不确定它们是否相关 - 感到困惑 - 有人有线索吗?
编辑:根据最初的答案,我尝试使用:
import * as Stats from 'stats.js'
我收到错误消息:
Uncaught TypeError: Cannot set property 'Stats' of undefined
引用此行:
(function(f,e){"object"===typeof exports&&"undefined"!==typeof module?module.exports=e():"function"===typeof define&&define.amd?define(e):f.Stats=e();})(undefined,function(){var f=function(){function e(a){c.appendChild(a.dom);return a}function u(a){for(var d=0;d<c.children.length;d++)c.children[d].style.display=d===a?"block":"none";l=a;}var l=0,c=document.createElement("div");c.style.cssText="position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000";c.addEventListener("click",function(a){a.preventDefault();
__
我尝试过:
const Stats = require('stats-js');
并收到错误消息:
Uncaught ReferenceError: require is not defined
__
我尝试过:
import Stats from 'stats-js'
并收到此消息:
(!) Unresolved dependencies
https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency
stats-js (imported by src\main.js)(!) Missing global variable name
Use output.globals to specify browser global variable names corresponding to external modules
stats-js (guessing 'Stats')
听起来这最后一个错误最有用?我按照错误消息中的链接操作,但仍然无法修复它。
3个回答
该库不提供 es6 默认导出。
import * as Stats from 'stats-js'
// or
const Stats = require('stats-js')
// or
import Stats from 'stats-js'
xMayank
2020-07-06
我的错误与您的错误相似,但是我找到了原因,并在导入
150099516
时使用了以下代码(对不起,使用翻译人员)
william-wwh
2022-03-27
如果有人需要答案,请尝试导入不带花括号的统计数据:
import Stats from "three/examples/jsm/libs/stats.module.js";
Aleksandra Vranjevac
2023-05-18