这可能是一个重复的问题,但是无论我如何尝试都找不到我想要的答案。所以,我问。
我想要的东西:
将node_modules中的文件移动到我的项目中,以便在编辑文件时可以使用它
第一次尝试:
结果:
怪异:
所有修改的路径都是正确的
即我可以通过IDE中的该路径移动到导入的文件。
回购示例:
https://github.com/YahngSungho/dfsfdsfsfdsfwfsd/tree/help/npmToLocal1 特别: https://github.com/YahngSungho/dfsfdsfsfdsfwfsd/tree/help/npmToLocal1/src/components/editableText
第二次尝试:
我将所有导入的文件以及要修改的文件都移到了项目中。
结果:
我的观点: 它似乎与Typescript或commonjs有关。但是我不知道如何使它工作。
回购示例: https://github.com/YahngSungho/dfsfdsfsfdsfwfsd/tree/help/npmToLocal2 特别: https://github.com/YahngSungho/dfsfdsfsfdsfwfsd/tree/help/npmToLocal2/src/components/list/editableText/components/editable-text
如果有人知道如何解决问题,我将非常感激。
答案 0 :(得分:0)
以下是您的一些选择:
解决方案1:,您可以手动monkey-patch有问题的模块:
这是操作方法(一般方法):
创建一个名为ModifiedEditableText.tsx
的新文件
然后在该文件中:
import { EditableText } from "@blueprintjs/core";
const newModule = {};
// First, copy over all the fields from the original module
for (let fieldName in EditableText) {
newModule[fieldName] = EditableText[fieldName];
}
// Then write new implementations of any function you want to change
newModule.function1 = function(arg, arg2, arg3) {
// new function implementation
// To call the original function do:
EditableText.function1();
}
export default newModule;
解决方案2:分叉该模块,进行更改,提交PR,并希望将其合并(可能不会发生)
解决方案3:分叉模块,进行更改,然后将该模块导入代码中,而不是导入官方库中
解决方案4::使用一个库来修补您的组件,以下是此类库的一些示例: