mes*_*eeb 5 javascript npm node-modules package.json
我创建了一些npm模块并将其编译为:
exports.default =)和export default)我像这样设置package.json:
main: "index.cjs.js",
module: "index.esm.js"
Run Code Online (Sandbox Code Playgroud)
当我npm安装软件包时,我可以像这样简单地导入它:
import myPackage from 'my-package'
Run Code Online (Sandbox Code Playgroud)
它将自动选择main文件,而不是模块。
在JavaScript文件中module执行操作时import myPackage from 'my-package',是否可以导入文件?
我注意到使用Node esm无法导入文件,因为export default它必须是commonJS。我有一些简单的辅助JS函数,例如this和this,我希望它们可以被最广泛的读者使用。这就是为什么我选择cjs了"main"中的package.json路径。
许多著名的库(例如Vue.js)已经在执行此操作。查看有关此Stackoverflow线程的更多信息:
Rollup中当前存在一个错误,该错误在导入cjs文件后进行编码时无法正确显示JSDoc注释,但在导入文件时可以正常工作es。
只需将“ main”设置为esmpackage.json中的文件,对不对?但是,所有在Node应用程序中使用我的软件包的用户将无法再使用它...
我对这一切也很困惑,但我认为我做了足够的研究以弄清所有这些。话虽如此,如果有人知道更好的方法或任何其他建议,请在下面的评论中告诉我!!
只是不要为主文件使用扩展名,并且将 es6 和 CommonJS 版本作为两个单独的文件,它们具有相同的名称和相同的目录,但具有不同的扩展名,因此:
index.js // transpiled CommonJS code for old nodejs
index.mjs // es6 module syntax
Run Code Online (Sandbox Code Playgroud)
并在package.json:
{
"main": "index"
}
Run Code Online (Sandbox Code Playgroud)
如果节点使用--experimental-modules标志启动,它将使用*.mjs文件,否则使用*.js.
| 归档时间: |
|
| 查看次数: |
1855 次 |
| 最近记录: |