gpt4 book ai didi

typescript - 导入带有可选链接的模块时出错

转载 作者:行者123 更新时间:2023-12-04 12:29:06 25 4
gpt4 key购买 nike

项目设置:

  • Vuejs 3
  • Webpack 4
  • 通天塔
  • TS


  • 我们使用 vue-cli 创建了项目并将依赖项添加到库中。
    然后我们导入了一个使用可选链的项目 ( Vue Currency Input v2.0.0 )。但是我们在执行 serve 时遇到以下错误脚本:
    error  in ./node_modules/vue-currency-input/dist/index.esm.js

    Module parse failed: Unexpected token (265:36)
    You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
    | getMinValue() {
    | let min = this.toFloat(-Number.MAX_SAFE_INTEGER);
    > if (this.options.valueRange?.min !== undefined) {
    | min = Math.max(this.options.valueRange?.min, this.toFloat(-Number.MAX_SAFE_INTEGER));
    | }

    我读到 Webpack 4 默认不支持可选链接。因此,我们为可选链接添加了 Babel 插件。这是我们的 babel.config.js文件:
    module.exports = {
    presets: ["@vue/cli-plugin-babel/preset"],
    plugins: ["@babel/plugin-proposal-optional-chaining"],
    };
    (但是,如果我是对的,这个插件现在默认在 babel-preset 中启用。所以这个修改可能没用^^)
    我不明白的一件事是我们可以在 .vue 中使用可选链文件。
    我创建了一个包含所有文件的沙箱: SandBox
    我该如何解决这个错误?

    最佳答案

    我能够使用 @babel/plugin-proposal-optional-chaining 克服这个问题,但对我来说,让 Webpack 使用 Babel 插件的唯一方法是通过 vue.config.js 中的 Webpack 选项推送 babel-loader 配置。这是一个最小的 vue.config.js:

    const path = require('path');
    module.exports = {
    chainWebpack: config => {
    config.module
    .rule('supportChaining')
    .test(/\.js$/)
    .include
    .add(path.resolve('node_modules/PROBLEM_MODULE'))
    .end()
    .use('babel-loader')
    .loader('babel-loader')
    .tap(options => ({ ...options,
    plugins : ['@babel/plugin-proposal-optional-chaining']
    }))
    .end()
    }
    };
    令人惊讶的是我做了 不是 需要安装 @babel/plugin-proposal-optional-chaining与 NPM。我用@vue/cli 4.5.13 搭建的应用程序进行了通过/不通过测试,在我的情况下没有 typescript 。我导入了引起我悲伤的 NPM 模块(@vime/vue-next 5.0.31 BTW),运行 serve脚本并得到了 Unexpected token在包含可选链接的行上出错。然后我将上面的 vue.config.js 放入项目根目录并运行 serve再次编写脚本,这次没有错误。
    我的观点是,这个问题似乎可以在不严重污染开发环境的情况下解决。
    Vue 论坛否认这个问题,声称 Vue 3 支持可选链。然而,显然不是在节点模块中。帖子在 this thread作者 atflick 于 2/26/2021 帮了大忙。

    关于typescript - 导入带有可选链接的模块时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68016663/

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