gpt4 book ai didi

javascript - babel-loader 破坏了 npm 包中的 `this` 变量

转载 作者:行者123 更新时间:2023-12-03 14:30:21 27 4
gpt4 key购买 nike

我从 awesome-typescript-loader 切换过来至babel-loader我在我们使用的 npm 包中遇到了这个问题 - lodash-inflection .

Uncaught TypeError: this.pluralize is not a function at pluralize (lodash-inflection.js:68)

下面是损坏的()和工作的()之间的断点。

enter image description here

this lodash-inflection.js 中的变量变成window而不是包期望的实际值,因此包不再工作。

以下是对 webpack.js 的更改

{
test: /\.tsx?$/,
exclude: /(node_modules|bower_components)/,
loader: 'awesome-typescript-loader',
options: {
getCustomTransformers: isDev && path.join(__dirname, './webpack.ts-transformers.js')
}
}

{
test: /\.tsx?$/,
exclude: /(node_modules|bower_components)/,
use: [{
loader: 'babel-loader',
options: {
presets: [
["@babel/preset-env", { modules: "false" }],
["@babel/preset-typescript", { "allExtensions": true, "isTSX": true }],
"@babel/preset-react",
],
plugins: [
"@babel/plugin-proposal-class-properties",
"@babel/plugin-proposal-object-rest-spread",
"@babel/plugin-syntax-dynamic-import",
"@babel/plugin-transform-runtime",
"@babel/plugin-proposal-optional-chaining",
"@babel/plugin-proposal-nullish-coalescing-operator"
],
env: {
development: {
plugins: [
[
"styled-components",
{
displayName: true
}
]
]
}, production: {
plugins: [
[
"styled-components",
{
displayName: false
}
]
]
}
}
}
}],
}

我见过的大多数 babel 选项都是这样的。我还尝试更改 presets 的顺序.

最佳答案

查看lodash-inflection包,似乎有一个open issue尝试导入和使用单独的方法。尝试导入整个包:

import inflection from 'lodash-inflection';
//...
inflection.pluralize(foo, bar);

关于javascript - babel-loader 破坏了 npm 包中的 `this` 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59172216/

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