我尝试导入chess.js模块,如下所示:import Chess from 'chess.js';
在本地加载应用程序时,这会给我带来以下错误:require() of ES Module .../app/node_modules/chess.js/chess.js from .../app/node_modules/vue-server-renderer/build.dev.js not supported. Instead change the require of chess.js in .../app/node_modules/vue-server-renderer/build.dev.js to a dynamic import() which is available in all CommonJS modules.
我已经在使用import语句,而不是require。我尝试了不同的方法来导入模块,但是没有任何效果。我知道这是由于在创建NuxtJS应用程序时使用TypeScript造成的。我目前正在尝试将chess.js模块导入. js文件,而不是. ts文件,这里有些东西被翻译错了。
有什么想法吗?
这是我的配置文件:
{
"compilerOptions": {
"target": "ES2018",
"module": "ESNext",
"moduleResolution": "Node",
"lib": [
"ESNext",
"ESNext.AsyncIterable",
"DOM"
],
"esModuleInterop": true,
"allowJs": true,
"sourceMap": true,
"strict": true,
"noEmit": true,
"experimentalDecorators": true,
"baseUrl": ".",
"paths": {
"~/*": [
"./*"
],
"@/*": [
"./*"
]
},
"types": [
"@nuxt/types",
"@nuxtjs/axios",
"@types/node"
]
},
"exclude": [
"node_modules",
".nuxt",
"dist"
]
}
- UPDATE**将. js文件转换为. ts并运行'npm i--save-dev@types/chess.js'就可以了,但我仍然想知道是否有办法让原始的JS脚本工作。
2条答案
按热度按时间wlsrxk511#
您可以尝试将
import()
函数与JavaScript结合使用。您需要按照以下步骤来完成它。
1.从
package.json
中删除以下行。1.请将
import
语句更改为下面的语句。确保您使用的是LTS版本的Node.js,因为旧版本不支持顶级await
!这应该会删 debugging 误,同时还允许您使用JavaScript。
quhf5bfb2#
我构建的一个模块也有同样的问题。
解决方案来自这里:https://nuxt.com/docs/guide/concepts/esm#es-modules
我将NPM包添加到nuxt.config中,如下所示: