ruby-on-rails – 使用Rails Webpacker Jest测试.js.erb文件
发布时间:2020-12-17 01:57:35 所属栏目:百科 来源:网络整理
导读:我有一个Rails 5应用程序,它使用webpacker,文件app / javascript / packs / components / module_one.js,我试图用Jest测试.此文件包含对.js.erb文件的导入,如下所示: // app/javascript/packs/components/module_one.jsimport ModuleTwo from './module_two
我有一个Rails 5应用程序,它使用webpacker,文件app /
javascript / packs / components / module_one.js,我试图用Jest测试.此文件包含对.js.erb文件的导入,如下所示:
// app/javascript/packs/components/module_one.js import ModuleTwo from './module_two.js.erb' // ... module_two.js.erb包含以下内容: // app/javascript/packs/components/module_two.js.erb import ModuleOne from './module_one' // ... 在运行webpack-dev-server时,一切都按预期工作,但是当我尝试运行纱线测试时,它会抱怨以下错误: FAIL app/javascript/test/module_one.test.js ● Test suite failed to run /path/to/module_two.js.erb:1 ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import ModuleOne from './module_one' ^^^^^^ SyntaxError: Unexpected token import at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:306:17) at Object.<anonymous> (app/javascript/packs/components/module_one.js:1:745) at Object.<anonymous> (app/javascript/test/module_one.test.js:1:124) Test Suites: 1 failed,1 total Tests: 0 total Snapshots: 0 total Time: 2.545s Ran all test suites. error Command failed with exit code 1. 所以似乎模块没有从ES6正确转换module_two.js.erb文件,因为当我删除module_one.js的第一行时,它不会再抱怨了. 这是我目前的设置: // .babelrc { "presets": [ ["env",{ "modules": false,"targets": { "browsers": "> 1%","uglify": true },"useBuiltIns": true }] ],"plugins": [ "syntax-dynamic-import",["transform-class-properties",{ "spec": true }] ],"env": { "test": { "plugins": ["transform-es2015-modules-commonjs"] } } } // package.json { // ... "devDependencies": { "babel-jest": "^21.0.2","jest": "^21.0.2","regenerator-runtime": "^0.11.0","webpack-dev-server": "^2.7.1" },"scripts": { "test": "jest" },"jest": { "roots": [ "<rootDir>/app/javascript/test" ],"moduleDirectories": [ "<rootDir>/node_modules" ],"moduleFileExtensions": [ "js","jsx","erb" ],"transform": { "^.+.jsx?$": "babel-jest","?.+.jsx?.erb": "rails-erb-loader" } } } 解决方法
万一其他人碰到这个.
您的.babelrc似乎缺少“es2015”预设. Here很好地解释了使用Rails Webpacker配置JS测试的这个问题和其他问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |