如果你初学,那你应该是不需要那个namespace的,跳过那一节吧,tsconfig.json用默认的不要改,ts代码都放在assets目录下,就可以了。ts都是Creator自动编译的,不需要我们操心tsconfig.json。
其实文档不该让用户改项目文件夹下的tsconfig.json,因为Creator的ts工作逻辑是这样:
- Creator内置一个tsconfig.json或类似的编译选项,用于内部编译打包ts文件的时候使用,我们看不到也改不了。所以你改变项目目录下的tsconfig.json,不会影响代码的编译打包和运行。
- 项目目录下的tsconfig.json,主要目的是为了IDE和TypeScript的检查和提示。比如module指定为commonjs,意思是告诉IDE和TS编译器,代码将会以commonjs的方式打包,这样IDE和TS才知道你可以使用import,export等关键字;比如experimentalDecorators告诉IDE和TS启用装饰器,这样你用@ccclass的时候才不会报错;比如skipLibCheck,意思是告诉IDE和TS跳过.d.ts的代码检查,这样creator.d.ts中还未修复的一些错误,不会当作你的项目问题爆在你的IDE错误提示中。
你发的第1个错误,意思是outFile参数只支持amd和system两种打包方式,commonjs不支持,这是打包方式决定的。outFile是把所有ts代码打包成一个.js文件,只有amd和system支持。你改成了outDir,意思是把所有ts代码,打包到对应目录下同样结构和名字的各个.js文件,commonjs是支持的。
你发的第2个错误,意思是让IDE和TypeScript只检查和编译namespaces文件夹下的文件,那么它就会跳过根目录下定义引擎API的creator.d.ts,自然就没有cc了。
综上,绝大多数人是不需要使用namespace的,如果非要使用, 那应该新建一个文件夹,在那个文件夹下配置好tsconfig.json,写好ts,打包成单个js文件后,再拷贝回Creator项目assets文件夹下作为插件导入。



