nodejs中怎么引入有ES6语法的npm包?

作者站长头像
站长
· 阅读数 4

nodejs中怎么引入有ES6语法的npm包?

nodejs中引入模块用的是require,需要用到的npm包使用的是importnodejs中怎么引入有ES6语法的npm包?用nodejs的express-gennerator生成的骨架,views下的index.ejs是主页面,当中用外部链接引用的js文件,js文件当中用import引入node_modules中的模块就报错,是不能这样用吗?其他地方查的有说nodejs已经支持es6语法了,但script标签中加type="module"和package.json中type="modules"都不行。babel编译的方法也试了一下,也没成功。菜鸟一枚,请大家详细的指教一下。

回复
1个回答
avatar
test
2024-06-23

可以直接用 ESM 么?在 package.json 里用 "type": "module" 开启。

你差的知识太多,需要厘清很多概念。

  1. 首先 ESM 和 CommonJS 是目前最主流的模块管理方式,前者标志是 import,后者是 require
  2. 这两者都只针对 JS。其中 node.js 都支持,web 则只支持 ESM。
  3. package.json 里声明 type: module 会指明该项目在 node.js 下使用 ESM。但是你这个是网页项目,所以跟 package.json 就没什么关系。
  4. 既然你用了 babel,那么很可能也会配套使用 webpack 之类的打包工具。如果最终产品都走打包,那就无所谓。
  5. 否则你就要区分你的 JS 运行在哪个环境下,并采取对应的手段。
  6. 实在不好搞,我的建议是换个包,或者降版本先试试。或者,换个新工具从头开始。总之问题要一个一个解决,不要死抠。
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容