报错:__dirname is not defined in ES module scope

这篇具有很好参考价值的文章主要介绍了报错:__dirname is not defined in ES module scope。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

报错:__dirname is not defined in ES module scope,问题,前端,javascript

 在给vite+vue3.0设置别名的时候,直接使用了__dirname这个内置变量报错__dirname is not defined in ES module scope

报错原因: 

__dirname是commonjs规范的内置变量。如果使用了esm,是不会注入这个变量的。

在commonjs中,注入了__dirname,__filename, module, exports, require五个内置变量用于实现导入导出的能力。而在esm中,因为规范已经完全不一样,故实现方式也是不一样的。

在esm中,显然模块的导入导出使用export/import,自然不会再用exports /require,同理__dirname,__filename也有对应的规范写法。

解决的办法:

import path from 'path'

import { fileURLToPath } from 'url'

const __filenameNew = fileURLToPath(import.meta.url)

const __dirnameNew = path.dirname(__filenameNew)

报错:__dirname is not defined in ES module scope,问题,前端,javascript

 文章来源地址https://www.toymoban.com/news/detail-686656.html

到了这里,关于报错:__dirname is not defined in ES module scope的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决浏览器 require is not defined 的报错问题

    在node环境中引入了一些包,用webpack打包后放在浏览器环境中,浏览器报错 require is not defined 。 这是因为 require 是node环境下的CommonJs,而 import 是浏览器环境下的ESModule。ESModule不认识require。 require 是node的一个私有的全局方法。 那就让打包出来的代码别有require,换句话说,

    2024年02月15日
    浏览(40)
  • 报错问题修改 Vue 项目报错:‘$‘ is not defined ( no-undef )

    错误原因是不认识  $  符,他是  JQuery  中得符号,引入了  JQuery window.onload = function (){ onload = function (){ 第二种方法,改为 function del(obj){} , 则报错  del is not defined at HTMLAnchorElement.onclick 第三种方法改为 del = function(obj){},则也可以成功执行功能 onclick是要求全局函数  在

    2024年02月03日
    浏览(30)
  • uniapp 小程序 使用 new FormData 报错,is not defined 问题解决

    new FormData 只适用于web端,uniapp 小程序不适用,这里当时也卡了一下,随便用个js文件发现其实FormData也使用不了,所以如果要配置formData 的格式 无法使用FormData,会报 FormData is not defined. 解决方法1: 使用uniapp 自带的api uni.uploadFile(OBJECT)       官网api地址:uni.uploadFile(OBJECT) | u

    2024年02月11日
    浏览(47)
  • 微信小程序:module “miniprogram_npm/@vant/weapp/action-sheet/index.js“ is not defined报错

    也可以试一下重新启动小程序,没准就好了。 

    2024年02月12日
    浏览(60)
  • uniapp 小程序 使用 new FormData 报错,is not defined 问题解决(没解决)

    new FormData 只适用于web端,uniapp 小程序不适用,这里当时也卡了一下,随便用个js文件发现其实FormData也使用不了,所以如果要配置formData 的格式 无法使用FormData,会报 FormData is not defined. 原文 原文 原文 最终代码:

    2024年01月19日
    浏览(41)
  • 【python】linux系统python报错“ssl module in Python is not available”

    pip安装时遇到openssl问题,没办法安装第三方库 “WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. ” 直接执行python,进入python, 输入import  ssl ,也会报相似的错误。  正常情况下,是这样的,导入成功无报错 根据出错信息提示分析:

    2024年02月21日
    浏览(32)
  • 引入小程序组件库 WeUI 报错 error: module “miniprogram_npm/weui-miniprogram/_commons/0.js“ is not defined

    如果有类似报错,并且package.json已经有\\\"weui-miniprogram\\\" 依赖了 那就先删除了node_modules 跟 miniprogram_npm 两个文件夹(有就删除,没有也一样是按照下面的步骤),执行以下几步: 打开终端 构建 miniprogram_npm 文件夹 miniprogram_npm是基于node_modules文件夹构建的,确保先执行上面的第

    2024年02月11日
    浏览(93)
  • module is not defined的原因

    \\\"module is not defined\\\" 这个错误的原因通常是因为你在 JavaScript 代码中使用了 module 这个变量,但是没有在代码之前声明它。 在 JavaScript 中, module 不是一个内置的,而是在使用某些模块加载器(如 CommonJS 和 AMD)时被定义的一个变量。如果你想在你的代码中使用 module 变量,

    2024年02月11日
    浏览(32)
  • 解决ESLint 报 ‘module‘ is not defined

    在需要使用CommonJS的文件头部使用: 在.eslintrc.cjs 文件里添加node环境变量 module.exports 改为 export default ESLint检查严格,默认不支持CommonJS语法,不过可以看到.eslintrc.cjs 文件就使用了/* eslint-env node */ 和 module.exports,真是让人饶头。

    2024年02月04日
    浏览(41)
  • require() of ES modules is not supported.ts项目中添加js文件报错

    Must use import to load ES Module: E:1-vue3XXXXXXXXXbook-money.cz-config.js require() of ES modules is not supported. require() of E:1-vue3XXXXXXXXXbook-money.cz-config.js from E:1-vue3XXXXXXXXXbook-moneynode_modulesfind-configsrcfind-config.js is an ES module file as it is a .js file whose nearest parent package.json contains “type”: “modu

    2024年01月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包