问答详情
源自:4-8 使用存储类保存数据

导入uuid需要用import,报错,electorn要怎么配置es编译

import { v4  } from 'uuid'

^^^^^^


SyntaxError: Cannot use import statement outside a module

    at Module._compile (internal/modules/cjs/loader.js:815:22)

    at Object.Module._extensions..js (internal/modules/cjs/loader.js:892:10)

    at Module.load (internal/modules/cjs/loader.js:735:32)

    at Module._load (internal/modules/cjs/loader.js:648:12)

    at Module._load (electron/js2c/asar.js:717:26)

    at Function.Module._load (electron/js2c/asar.js:717:26)

    at Module.require (internal/modules/cjs/loader.js:775:19)

    at require (internal/modules/cjs/helpers.js:68:18)

    at Object.<anonymous> (D:\myself\electron\electron-quick-start\main.js:2:19)

    at Module._compile (internal/modules/cjs/loader.js:880:30)


提问者:qq__艶暘_0 2020-03-04 10:53

个回答

  • SystemLight
    2021-02-12 15:26:45

    我想你被前端的模块化搞糊涂了,electron是基于node做开发的,而node的模块化是commonjs规范,也就是用require做导包,如果你想混用esm(import)和commonJS(require)就不得不用第三方打包工具,如webpack,但是配置webpack麻烦,所以我推荐的做法是直接使用typescript做编译,写ts源码,ts是支持esm规范的,而且有类型约束,编译后的代码可以是esm规范也可以是commonJS规范,但是要用electron启动编译后的代码就必须是commonJS规范,否则electron不识别。

  • MochaCat
    2020-06-14 10:12:01

    const { v4: uuidv4 } = require('uuid');

    试试这个,npm上的例子

    https://www.npmjs.com/package/uuid