为什么直接改node_modules里面的代码,不会生效?

之前有一个需求是,table里面要加一些提示文字和自定义icon,同时需要前端做分页。这些功能element-ui都不支持,所以我就尝试着改node_modules里面element-ui的源码。但是改了缺没有生效。最后我把整个table组件移出来到src目录下,然后改了改引用名字什么的,就生效了。

可是这没有从根本上解决问题啊,我想问的是,为什么直接改node_modeles里面的代码会不生效,这其中的原理是什么?

阅读 27.1k
5 个回答

你可能修改的是element的源码,而你引用的是它编译打包之后的,所以没有生效。

ps:
如果你单独去修改node_modules里面的代码,那你同事以及生产环境呢?
有这种需求,建议你去fork一下element,然后使用npm安装你fork的地址。

一二楼说的很正确。如果想要改源码,你的重新下载element源码。然后改掉你想要改的,然后npm run build,将改掉里面的lib替换到node_modules中element下的lib包,只有这样才可以

element-ui 引用的已经是打包好的。。

首先需要了解npm包的结构
一般的npm包发布的时候,里面会包含两部分
第一部分:源码
第二部分:打包出来的文件(js,css等)

还有一种可能不生效,那就是上面两个你都修改了,但是npm run dev的时候还是不生效,这时候就要去看下你本地的配置了,可能饮用的是build里的文件,或者存在缓存(但是这种几率一般很小)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题