gpt4 book ai didi

node.js - Webpack 在 linux 上找不到 lodash 子模块,但在 macOS 上可以正常工作

转载 作者:行者123 更新时间:2023-12-03 12:35:52 24 4
gpt4 key购买 nike

我意识到我的 Electron 应用程序不想在 linux 上正确构建,而在 macOS 上它可以正常工作。我不太清楚为什么。

所以在 macOS 上这工作正常

let _snakecase = require('lodash/snakecase')
let _cloneDeep = require('lodash/clonedeep')
let _filter = require('lodash/filter')

在 linux 上,这会引发找不到依赖项的错误 lodash/snakecaselodash/clonedeep .奇怪了 可以查找 lodash/filter .如果像这样导入它,我只能让它工作:
import {snakecase as _snakecase} from 'lodash'
import {clonedeep as _cloneDeep} from 'lodash'
import {filter as _filter} from 'lodash'

但我的问题是为什么我可以 require('lodash/filter')但不是 require('lodash/snakecase') ?我什至不知道从哪里开始寻找调试这个。

当我尝试要求 lodash/snakecase 时的确切错误:
This dependency was not found:

* lodash/snakecase in ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0&bustCache!./src/views/modals/ChannelModal.vue

最佳答案

macOS 上的文件系统默认不区分大小写,这意味着当您请求一个不存在的文件时,假设为 file.js ,它很乐意给你FILE.js如果那个存在。在区分大小写的文件系统上,它只会告诉您 file.js不存在并导致错误。 Linux 上的文件系统区分大小写。

您要查找的文件是 cloneDeep.js snakeCase.js ,但您正在尝试导入 clonedeepsnakecase分别是不存在的。 lodash/filter工作是因为 filter.js 实际存在。

正确的进口将是:

let _snakecase = require('lodash/snakeCase')
let _cloneDeep = require('lodash/cloneDeep')

关于node.js - Webpack 在 linux 上找不到 lodash 子模块,但在 macOS 上可以正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46886915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com