nodejs中怎么引入有ES6语法的npm包?-灵析社区

米斯达

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

阅读量:13

点赞量:0

问AI
可以直接用 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. 实在不好搞,我的建议是换个包,或者降版本先试试。或者,换个新工具从头开始。总之问题要一个一个解决,不要死抠。