【发布时间】:2019-06-18 05:29:46
【问题描述】:
我有一个使用 Kirby CMS 的 PHP 项目。我也使用 Gulp 来构建我的资产。现在,我需要在主页上添加一个足够复杂的计算器来证明使用 Vue 的合理性。如何在不引入大量新工具的情况下将 Vue 整合到我的项目中?我想要的只是一个简单的单文件组件。我有:
<div id="calculator"></div>
我希望组件在那里呈现。仅此而已。
经过一番考虑,我想出了以下选项,但发现每个选项都有问题:
使用Vue CLI for instant prototyping。这是我用例最接近的解决方案,但我无法轻松开发组件。如果我使用
vue serve,我会在新页面中看到隔离的组件。问题在于该组件不是我项目页面的一部分。它不受其样式表、布局和其他脚本的影响。一旦我构建它并在我的项目中查看它,我不知道它是否会正常工作。在每次更改时运行vue build会非常痛苦且耗时。可悲的是,vue watch不是一个东西,这导致我:-
创建一个项目并使用Vue CLI Service。如果我创建一个项目,我将能够运行
vue-cli-service build --watch并让我的组件在其源文件的每次更改时自动刷新。在开发组件时,我只需进行更改,等待它编译,然后在浏览器中刷新我的项目以查看修改后的组件的运行情况。虽然这可行,但它在我的项目中引入了一堆node_modules,以及一个package.json。我觉得这对于单个组件来说太多了。它会比我想的更污染项目:assets/ js/ build/ calculator/ dist/ node_modules/ # modules here public/ # I don't need that package.json # package here package-lock.json App.vue scripts/ main.js content/ site/ node_modules/ # modules here as well panel/ package.json # package here as well package-lock.json index.php我基本上会在一个项目中拥有一个项目。
使用 vueify 通过 Browserify 和 Gulp(我已经使用)编译组件。虽然这看起来不错,但 vueify 已被弃用且不受支持。此外,我必须在我的
gulpfile.js中添加一堆东西才能使用 Babel + ESLint 作为组件。
我如何设置 Vue,以便我能够开发一个非常简单的组件作为更大项目的一部分,并且尽可能减少摩擦?
如果有人处理过类似的问题,他们是如何解决的?
【问题讨论】: