laravel - 在 npm run dev 期间未找到 npm 依赖项
问题描述
我的应用程序的一部分是使用 VueJS 构建的。完整的应用程序构建在 Laravel 框架之上,所以我使用 Laravel Mix 来编译我的 css/js-assets。为了获得更好的概述,我将我的应用程序的一部分放在单独的包中,例如:
- 应用程序
- 引导程序
- 配置
- ...
- 包
- 目录
- 资源
- js
- 成分
- 目录组件A.vue
- ...
- 目录.js
- ...
- 资源
- 资产
- js
- Vue组件
- 组件A.vue
- ...
- 应用程序.js
在本地运行 npm(在 Homestead/Vagrant 或在我的操作系统下)工作得非常好。将其部署到我的网络服务器会导致错误提示找不到依赖项:
*/home/forge/my-domain.com/packages/catalog/resources/js/Components/AddressAutoComplete in ./packages/catalog/resources/js/catalog.js
*/home/forge/my-domain.com/packages/catalog/resources/js/Components/Vehicle in ./packages/catalog/resources/js/catalog.js
*/home/forge/my-domain.com/packages/catalog/resources/js/Components/VehicleList in ./packages/catalog/resources/js/catalog.js
...
我在所有系统上都有相同版本的 npm。我试图重新安装我的 npm 包并尝试过Vue.component('my-component', require('./path-to-my-component'))
我catalog.js
使用自己子目录中的组件:
require('./../../../../resources/assets/js/app_bootstrap');
window.Vue = require('vue');
require('./../../../../resources/assets/js/coreComponents');
// Components
Vue.component('address-autocomplete', require(__dirname + '/Components/AddressAutoComplete'));
Vue.component('vehicle-list', require(__dirname + '/Components/VehicleList'));
Vue.component('vehicle', require(__dirname + '/Components/Vehicle'));
...
我的 webpack.mix.js 配置如下:
let mix = require('laravel-mix');
let cssPath = 'public/css';
let jsPath = 'public/js';
if (mix.inProduction()) {
mix.js('resources/assets/js/app.js', jsPath)
.js('packages/catalog/resources/js/catalog.js', jsPath)
.sass('packages/catalog/resources/sass/catalog.scss', cssPath)
.sass('resources/assets/sass/app.scss', cssPath)
.sourceMaps()
.version();
} else {
mix.js('resources/assets/js/app.js', jsPath)
.js('packages/catalog/resources/js/catalog.js', jsPath)
.sass('packages/catalog/resources/sass/catalog.scss', cssPath)
.sass('resources/assets/sass/app.scss', cssPath)
.sourceMaps();
}
解决方案
问题是文件结尾。无法加载的组件具有大写的文件扩展名(.Vue
而不是.vue
)。因为我的服务器操作系统区分大小写,所以它无法加载模块..
推荐阅读
- swift - 由于两个存储的属性在 Swift 中不以任何方式交互,如何保持内存安全?
- c++ - 如何将文件放入程序并在启动后将其提取
- c - c 中对 SDL 的未定义引用
- haskell - 你能“部分”派生一个 Typeclass 吗?
- c - 如何打印具有多种数据类型的数组
- javascript - 如何在一个项目中访问我的第一个平面列表中的所有数据,以便我可以将它传递给我的第二个平面列表?
- php - Xdebug 停止在 Windows 10 上进行 PHP 跟踪
- flutter - 使用 Mockito 进行 ElevatedButton 测试
- curl - 带附件的 Gmail API 发送
- javascript - BoostrapVue:修改表格以将项目显示为输入