开发踩坑(一)——修改dicomweb-client的代码
因为调试接口的需求,需要对dicomweb-client package
的代码进行简单修改,通过import引用语句
import {api} from 'dicomweb-client'
导航到node_modules/dicomweb-client/build/dicomweb-client.js
文件,修改其中的代码后运行,发现浏览器端并没有修改后所希望的输出,在浏览器console和sources处查看所调用的文件,发现并没有任何改变。
出现这个问题的本质原因是因为我们修改错了位置,修改的代码并没有被浏览器运行。在dicomweb-client package
的package.json
文件中,有两个非常关键的字段main和module,这两个字段设置的入口文件不同,导致编译器和浏览器的入口文件不同。
具体设置如下
"main": "build/dicomweb-client.js",
"module": "build/dicomweb-client.es.js",
在编译器端,入口文件是main
字段对应的文件,在浏览器端是module
字段所对应的文件。这样做的目的是为了兼顾commonjs和es两种语法规范而设计的(具体内容可以搜索main和module字段的区别)。
也就是说要想让浏览器产生所希望的修改,有两个方法:
- 修改module字段所对应的文件。
- 将module字段配置的路径设置成和main字段一样的。