无法将类导入 index.js 文件

225/5000


你好,


尽管我可以在 Internet 上找到所有信息,但我无法将类导入到我的 index.js 文件中。


索引.js:


import {Brandade} from "./modules/Brandade";

const brandade = new Brandade('ma brandade',5);

布兰达德.js:


export class Brandade{

    nom: string;

    prix: number;


    constructor(nom: string, prix: number) {

        this.nom = nom;

        this.prix = prix;

    }


    get nom(){

        return this.nom;

    }


    set nom(nom: string){

        return this.nom = nom;

    }


    afficher_nom(){

        console.log(this.nom);

    }

}

我收到此错误:


internalBinding ('errors'). triggerUncaughtException (

                            ^


Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'C: \ Users \ user \ OneDrive \ programming \ nodejs \ projects \ typescript_tests \ modules \ Brandade' imported from C: \ Users \ user \ OneDrive \ programming \ nodejs \ projects

\ typescript_tests \ index.js


    at finalizeResolution (internal / modules / esm / resolve.js: 276: 11)

    at moduleResolve (internal / modules / esm / resolve.js: 699: 10)

    at Loader.defaultResolve [as _resolve] (internal / modules / esm / resolve.js: 810: 11)

    at Loader.resolve (internal / modules / esm / loader.js: 85: 40)

    at Loader.getModuleJob (internal / modules / esm / loader.js: 229: 28)

    at ModuleWrap. <anonymous> (internal / modules / esm / module_job.js: 51: 40)

    at link (internal / modules / esm / module_job.js: 50: 36) {

  code: 'ERR_MODULE_NOT_FOUND'

}

我的 package.json :


{

  "name": "typescript_tests",

  "version": "1.0.0",

  "description": "",

  "main": "index.js",

  "type": "module",

  "scripts": {

    "start": "node --experimental-modules index.js",

    "test": "echo \"Error: no test specified\" && exit 1"

  },


  "author": "",

  "license": "ISC",

  "dependencies": {

    "@types/node": "^14.11.8"

  }

}


你能指引我走向光明吗?


先感谢您。


茅侃侃
浏览 119回答 3
3回答

烙印99

从你的 package.json 我可以看到你正在尝试使用 --experimental-modules 运行节点。如果是,请尝试更改:import {Brandade} from "./modules/Brandade";到import {Brandade} from "./modules/Brandade.js";运行 node--experimental-modules本身不会解析文件扩展名。

小怪兽爱吃肉

尝试使用 commonjs 导入样式。代替import {Brandade} from "./modules/Brandade";经过const { Brandade } = require("./modules/Brandade");同时将 Brandade 文件导出语法更改为 commonjs,如下所示。class Brandade {&nbsp; constructor(){&nbsp; }}module.exports = { Brandade };为了使用 ES6 导入语法,请使用像 Babel 这样的转译器。

RISEBY

我的 nodejs 版本是 14,我回到了 12 版本。节点--版本v12.19.0npm --version6.14.8我删除了 package.json 并输入命令“npm init”。已创建一个新的 package.json 文件。我添加了以下行:"Start": "node index.js" in scripts.我还修改了 Brandade.js 文件:Module.exports = {Brandade};在 :Module.exports = Brandade;最后,在 index.js 中,我添加了以下几行:let Brandade = require ('./ scripts / Brandade');console.log ("Hello");let brandade = new Brandade ("my name", 3);brandade.show_name ();而且效果很好。感谢您的参与和回答。再见。有关信息,package.json 文件:{&nbsp; "name": "typescript_tests",&nbsp; "version": "1.0.0",&nbsp; "description": "",&nbsp; "main": "index.js",&nbsp; "scripts": {&nbsp; &nbsp; "start": "node index.js",&nbsp; &nbsp; "test": "echo \"Error: no test specified\" && exit 1"&nbsp; },&nbsp; "author": "",&nbsp; "license": "ISC"}布兰达德.js:class Brandade {&nbsp; &nbsp; constructor(nom, prix) {&nbsp; &nbsp; &nbsp; &nbsp; this.nom = nom;&nbsp; &nbsp; &nbsp; &nbsp; this.prix = prix;&nbsp; &nbsp; }&nbsp; &nbsp; get nom(){&nbsp; &nbsp; &nbsp; &nbsp; return this.nom;&nbsp; &nbsp; }&nbsp; &nbsp; set nom(nom){&nbsp; &nbsp; &nbsp; &nbsp; return this.nom = nom;&nbsp; &nbsp; }&nbsp; &nbsp; afficher_nom(){&nbsp; &nbsp; &nbsp; &nbsp; console.log(this.nom);&nbsp; &nbsp; }}module.exports = Brandade ;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript