我正在编写一个简单的程序,该程序使用充满字典单词的对象。我想从另一个文件中导入该对象,因为它很大。尝试导入它时,我收到一个错误,看起来像node不知道它是什么。
我已经尝试过重新安装最新版本的节点。
这是重要的代码
import {dict} from './words_dictionary'
这就是全部
import {dict} from './words_dictionary'
function exists(obj,str) {
if(obj[str]) {
return true
} else {
return false
}
}
console.log(exists(dict,'hello'))
这是字典代码的要旨:
export let dict = {a: 1, aa: 1, aaa: 1, aah: 1, aahed: 1, aahing: 1, aahs:
1, aal: 1, aalii: 1, aaliis: 1, aals: 1, aam: 1, aani: 1, aardvark: 1,
aardvarks: 1,...~3000 more}
我期望是正确的,但出现此错误:
SyntaxError: Unexpected token {
at new Script (vm.js:84:7)
at createScript (vm.js:264:10)
at Object.runInThisContext (vm.js:312:10)
at Module._compile (internal/modules/cjs/loader.js:696:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:747:10)
at Module.load (internal/modules/cjs/loader.js:628:32)
at tryModuleLoad (internal/modules/cjs/loader.js:568:12)
at Function.Module._load (internal/modules/cjs/loader.js:560:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:801:12)
at executeUserCode (internal/bootstrap/node.js:526:15)
编辑:es6现在可以正常工作了,但是我现在得到的是未定义dict的错误,这可能与文件大小有关,因为我已经多次检查了拼写错误
答案 0 :(得分:4)
您是否可以在代码中的其他地方使用import
键盘?这里的问题可能是您没有将代码移植到ES5中。由于import
是ES6功能,因此Node尚未完全支持它。如果使用Babel之类的工具来转换代码,则可以解决此问题。如果您不想这样做,请尝试使用require
。
如前所述,在Node 9+中,您也可以在启用了--experimental-modules标志的.mjs文件中使用它。
node --experimental-modules file.mjs
答案 1 :(得分:2)
仅受实验性标志支持 您应该使用--experimental-modules标志。
或者只使用require那样简单,或者如果您真的希望可以使用browserify,babel或parcel或其他内容来转换代码。
我认为,如果您运行以下代码,则该方法应该有效:node --experimental-modules
index.mjs
请注意,它使用mjs
扩展名(我认为是模块化JavaScript)
答案 2 :(得分:0)
您尝试一下。希望对您有帮助
const 'your_variable' = require('your_required_module or file_path')
以您的情况
const dict = require( './words_dictionary')
答案 3 :(得分:0)
Install necessary packages
npm install @babel/core @babel/register @babel/preset-env --save-dev
Add start.js file
// Transpile all code following this line with babel and use
'@babel/preset-env' (aka ES6) preset.
require("@babel/register")({
presets: ["@babel/preset-env"]
});
// Import the rest of our application.
module.exports = require('./server.js')