有没有办法“npm init” ES 模块?

C. *_*wis 14 javascript node.js npm es6-modules yarnpkg

所有现代版本的 Node 都需要运行包,因为模块位于"type": "module"package.json,但我没有看到任何标志npm inityarn init会添加该属性。

是否有包管理器的标志添加值的简单方法package.json(即,npm package-property set type module或类似的东西)?

小智 10

这正是你所要求的:

npm init es6

package.json它使用设置创建一个"type": "module"

来源: https: //www.npmjs.com/package/create-es6

  • 这烦人地设置了 `"license": "AGPL-version-3.f0",` (3认同)

小智 7

不久前看到这个问题,最长的时间我使用“npm init esnext”。我刚刚弄清楚如何直接从命令行编辑 package.json 键:

npm init -y; npm pkg set type="module";
Run Code Online (Sandbox Code Playgroud)

package.json虽然第一个命令会将without的内容记录"type": "module"到控制台,但如果打开,package.json您将看到它已被第二个命令正确添加。


Yur*_*nko -1

对于 ES 兼容模块,存在create-esm包。除其他事项外(文档),它还填充模块字段。

所以看来你可以使用npm init esm.

  • 请注意,如果您来这里寻求与OP中相同的问题,即npm init或yarn init的任何标志将在package.json中添加“type”:“module”属性,那么这不是答案。它只是将“esm”添加到依赖项中,这不是我想要的。YMMW。 (4认同)
  • 现在已经是 2022 年了,这个答案很可能是最好的答案,但它仍然很可怕。Node.js 和所有其他落后者确实需要齐心协力,将 commonjs/require 踢到路边。这种痛苦已经持续了很多年了。 (3认同)