其他相关问题中提供的解决方案,例如在.babelrc中包含正确的预设(es2015),已在我的项目中实现.
我有两个项目(让我们称之为A和B),它们都使用ES6模块语法.在项目A中,我正在导入通过npm安装的项目B,它位于node_modules文件夹中.当我为项目A运行我的测试套件时,我收到错误:
SyntaxError:意外的令牌导入
之前是项目B的这个错误的代码行:
(函数(exports,require,module,__ filename,__ dirname){从'history/lib/createBrowserHistory'导入createBrowserHistory;
因为我的源文件只包含"来自'history/lib/createBrowserHistory'的import createBrowserHistory',所以iife似乎是npm或者babel相关的东西; Project B的测试套件中的单元测试运行正常,如果我将Project B作为依赖项从项目A,我的测试套件(仍然使用es6导入内部项目模块)工作正常.
完整堆栈跟踪:
SyntaxError: Unexpected token import
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Module._extensions..js (module.js:405:10)
at Object.require.extensions.(anonymous function) [as .js] (/ProjectA/node_modules/babel-register/lib/node.js:138:7)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (actionCreators.js:4:17)
at Module._compile (module.js:398:26)
at loader (/ProjectA/node_modules/babel-register/lib/node.js:130:5)
at Object.require.extensions.(anonymous function) [as .js] (/ProjectA/node_modules/babel-register/lib/node.js:140:7)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/ProjectA/src/components/core/wrapper/wrapper.js:28:23)
at Module._compile (module.js:398:26)
at loader (/ProjectA/node_modules/babel-register/lib/node.js:130:5) …Run Code Online (Sandbox Code Playgroud)