请问应该使用哪种引入方式?import 还是 require?

我有一个包,store/ 如下:

image.png

在一个js文件中想要引入这个包:
image.png

我发现有2种方式引入。

1.请问应该使用哪种引入方式?import 还是 require?
2.定义一个模块一般是像store/中的一样吗?
store/ , 然后里面一个index.js,从index.js 中export 暴露对象或者方法;引入的时候直接引入包名就行了是吗?

阅读 2.6k
2 个回答

如果你想直接使用 NodeJS 来运行项目的话,暂时只能通过 require
如果想使用 import 来导入的话,需要使用 babel 给你的代码转换一下。
如果只是引入 node_modules 里面包的话,可以在 package.json 里面声明 "type": "module"
比如说:

// package.json
{
  "name": "test",
  "type": "module",
  "version": "1.0.0",
  ...

// test.js
import { createApp } from 'vue'
console.log(createApp)
// [Function: createApp]

如果说想要引入自己导出的内容,需要把你导出文件的后缀修改成 .mjs,例如:

// data.mjs
export const num = 123

// test.js
import { num } from './data.mjs'
console.log(num)
// 123

具体为啥 Node 到现在还不能直接使用 import 其他的回答已经说得很清楚了。

一般来说,浏览器里用 import,node.js 用 require

从你的代码来看似乎是 Vue3,但是项目名称是 nodejs-test01,有点不明白……

至于第二个问题,建议好好看文档,比如 MDN JavaScript 模块。只要符合语法就行,至于怎么写,要具体看需求来分析。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题