[英]Error importing local npm package
我们有几个网站,每个网站都在自己的项目中,并且我们希望将它们全部迁移到使用Vue.js。 每个网站都有其自己的目录,其中包含.vue
文件,然后使用Webpack将其捆绑在一起。 我们有一个Webpack配置,可以转换.vue文件,捆绑,棉绒并通过babel将其通过管道传输,并且运行良好。
但是,既然我们已经进行了数周的工作,我们已经注意到有一些组件和核心javascript文件非常相似,并且理想情况下,我们希望将它们引入vue组件和功能的共享库中。
我们提取了几个.vue
进入网站旁的文件夹,并把它们放在一起,与自己的一个基本的NPM模块package.json
,并使用NPM文件包括包括,所以在package.json
它只是看起来像: "vue-shared": "file:../CommonJavascript/Vue"
。 现在,当我们尝试使用Webpack生成捆绑包时,我们得到了以下错误:
../CommonJavascript/Vue/index.js中的错误模块构建失败(来自./node_modules/eslint-loader/index.js):错误:无法加载插件反应:找不到模块'eslint-plugin-react'
我不确定此错误来自何处,因为我们没有在任何地方使用react,并且在将文件移出之前看起来很高兴可以很好地构建。 目前,共享模块中唯一的依赖项是moment,它仅包含4 .vue
以及将它们捆绑在一起的基本包装器:
import button from 'Button.vue'
import loading from 'Loading.vue'
import modal from 'Modal.vue'
import progressBar from 'ProgressBar.vue'
export default {
button,
loading,
modal,
progressBar,
}
但是,我很好奇,所以我决定添加软件包(即使我们不需要它)以查看它是否可以解决问题,但是随后出现一个新错误:
../CommonJavascript/Vue/index.js中的错误模块构建失败(来自./node_modules/babel-loader/lib/index.js):ReferenceError:尝试在“基本”中将0指定为未知插件“ transform-runtime”相对于“ C:\\ Projects \\ Tmo \\ Code \\ CommonJavascript \\ Vue”进行解析
现在,一个让多一点意义上,我们确实使用主体工程通天运行时变换,但它不是由任何在共享项目中必需的,即使是 ,肯定是事实,它被包含在主体工程表示它仍应构建。
在某种程度上,似乎我只是不了解npm解决依赖关系的方式。 它似乎正在尝试通过查看共享文件项目来解决一些依赖性,但我不知道为什么。 我也不知道这种对eslint-plugin-react的奇怪依赖来自何处。
所以我想这是一个多部分的问题。 npm尝试解决依赖关系的方式是什么? 通过将.vue
文件移动到一个单独的项目中,将其包装为模块并在主项目中需要它,我是否做对了? 如果没有,拥有这样的共享依赖关系的最佳方法是什么?
这是由两个独立的问题混合引起的:
import button from './Button.vue'
(请注意对文件路径的更改) .eslintrc
文件,该文件引用了我的用户文件夹(c:\\ users \\ <username>)中的react插件。 如果找不到配置文件,则Eslint将其用作默认值(由于上述路径问题,它无法在共享文件上方查找,所以无法找到该配置文件) 我们已经决定以后将为这些文件使用git子模块
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.