导入 npm 模块作为源代码
Posted
技术标签:
【中文标题】导入 npm 模块作为源代码【英文标题】:Import npm module as source code 【发布时间】:2019-01-08 12:18:08 【问题描述】:我想导入vue-form-generator 的源代码,对源代码进行一些更改。作为 Node 和 javascript 的新手,我真的不知道自己在做什么。有人可以指导我完成这些步骤吗?
由于我的 Vue 项目是在 Typescript 中,以前我在使用 npm install vue-form-generator
时创建了 vfg.d.ts
declare module "vue-form-generator"
const VueFormGenerator: any;
export default VueFormGenerator;
而我的main.ts
是
import VueFormGenerator from 'vue-form-generator';
Vue.component('VueFormGenerator', VueFormGenerator);
现在我已将 /src 中的所有内容复制到我的 /src/component/form-generator 中,但不知道如何制作,因此我可以像以前一样使用。
【问题讨论】:
我不明白你为什么还不只是使用npm install
方法?
@Paul 我需要更改他们为每个输入生成模板的方式,据我所知,他们的版本中没有为此提供任何功能,因此我需要更改 formGenerator.vue 中的源代码
【参考方案1】:
如果您要创建自己的 vue-form-generator
分支,也可以在此处添加类型声明。
在您的src/component/form-generator
副本中创建文件index.d.ts
:
const VueFormGenerator: any;
export default VueFormGenerator;
那里不需要declare module ...
,因为这个index.d.ts
就在index.js
旁边,所以TypeScript编译器应该在你导入它时找到它
import VueFormGenerator from './relative-path-to/form-generator/index';
生成的 javascript 代码会在那里找到 index.js
。请注意,导入路径必须是相对的,否则,如果没有任何路径映射,它将在 node_modules
中查找模块,而不是在您的源代码中。
您还必须删除项目中对先前类型声明文件vfg.d.ts
的所有引用。
【讨论】:
以上是关于导入 npm 模块作为源代码的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 webpack 4 和 babel 7 导入 soap-npm 模块
从 npm 本地导入 ES 模块依赖项,无需捆绑/转译第一方源