用 protobufjs 生成的 .d.ts 文件无法导入

当导入到项目工程文件时

,总是提示 xxx为起点找不到模块

下面这张图是导出的 .d.ts 文件

有大佬知道怎么解决吗

pb 使用教程 + 消息号添加教程
https://www.cnblogs.com/muzzik/p/17060955.html

image

Cocos Creator如何使用Protobufjs|2.x|3.0

image

import 里面加后缀,.js

我用命令生成的 .js 是 proto.js, .ts 文件是 proto.d.ts 文件,.proto 文件的包名是 myproto,
你说的是这个意思吗 ?
import { myproto } from ‘…/Proto/proto.js’;
这样试了虽然不会报找不到模块的错误,但是导入的这个 myproto 是一个 undefined,
我也试过把 .d.ts 文件导入成 .js.d.ts 文件也是不行,

import x from…

x.myproto

这个是默认导出的 import { myproto } from ‘…/Proto/proto‘
改成这样 import myproto from ‘…/Proto/proto‘ 报错了

这个是我的Demo,有劳大佬看一下
ProtoDemo.zip (371.1 KB)
解压后在,文件目录下 执行 npm install, 我的 protobufjs 库是安装在项目目录下的

自顶一下…

这就是一个句子,顶

  1. 你需要在 from '.....' 里带上扩展名 .js。场景里也有提示的:

image

  1. 你需要去除 proto.js 里面 12 行的 export 。场景里也有提示的:

image

意思是:“CJS 模块里不应该有 export 语句”

  1. 你需要这样使用导入进来的 myproto
import root from 'xxxxx.js'; // 这个 root 就是 `xxxxx.js` 的 `module.exports`
const { myroot } = root; // 这才是你要的对象

正确输出:

image

原来它导入的是 .js 文件里的 module.exports 对象,嗯嗯,感谢感谢

虽然可以解决问题,但是import root from ‘xxxxx.js’;这里root不加{}在vscode中会报错:Module ‘“d:/cocos extension/ts_call_js_test/assets/jsmodule”’ can only be default-imported using the 'allowSyntheticDefaultImports’类似这样的

(帖子被作者删除,如无标记将在 24 小时后自动删除)