Я использую ES6 через JSPM + SystemJS + трейсер согласно JSPM учебнику.ES6 через ошибку JSPM в Firefox, Edge, Вивальди, но работает в Chrome, Opera
Все работает отлично в Chrome и Opera, однако консоль размещает различные ошибки в других браузерах.
Firefox: SyntaxError: class is a reserved identifier, uncaught exception: SyntaxError: class is a reserved identifier
Край: SCRIPT1002: Syntax error, Potentially unhandled rejection [2] Syntax error
Вивальди: Unexpected token =>
SystemJSreadme состояния, что он работает даже IE8 +.
Мои jspm.config.js
:
System.config({
baseURL: "/",
defaultJSExtensions: true,
transpiler: "traceur",
babelOptions: {
"optional": [
"runtime",
"optimisation.modules.system"
]
},
paths: {
"github:*": "jspm_packages/github/*",
"npm:*": "jspm_packages/npm/*"
},
shim: {
"packages": {
"assets/js/lib/tabs": {
"main": "tabby",
"format": "global",
"deps": "jquery",
"exports": "$.tabby"
},
"assets/js/lib/select": {
"main": "selectify",
"format": "global",
"deps": "jquery",
"exports": "$.selectify"
}
}
},
map: {
"babel": "npm:[email protected]",
"babel-runtime": "npm:[email protected]",
"core-js": "npm:[email protected]",
"jquery": "github:components/[email protected]",
"jquery-mask-plugin": "npm:[email protected]",
"jquery-validation": "github:jzaefferer/[email protected]",
"selectify": "assets/js/lib/select",
"tabby": "assets/js/lib/tabs",
"traceur": "github:jmcriffey/[email protected]",
"traceur-runtime": "github:jmcriffey/[email protected]",
"github:jspm/[email protected]": {
"assert": "npm:[email protected]"
},
"github:jspm/[email protected]": {
"process": "npm:[email protected]"
},
"github:jspm/[email protected]": {
"util": "npm:[email protected]"
},
"github:jzaefferer/[email protected]": {
"jquery": "github:components/[email protected]"
},
"npm:[email protected]": {
"util": "npm:[email protected]"
},
"npm:[email protected]": {
"process": "github:jspm/[email protected]"
},
"npm:[email protected]": {
"fs": "github:jspm/[email protected]",
"process": "github:jspm/[email protected]",
"systemjs-json": "github:systemjs/[email protected]"
},
"npm:[email protected]": {
"util": "github:jspm/[email protected]"
},
"npm:[email protected]": {
"assert": "github:jspm/[email protected]"
},
"npm:[email protected]": {
"inherits": "npm:[email protected]",
"process": "github:jspm/[email protected]"
}
}
});
И package.json
:
{
"name": "project_name",
"version": "1.0.0",
"description": "project_description",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "project_author",
"license": "ISC",
"devDependencies": {
"glob": "^5.0.15",
"gulp": "^3.9.0",
"gulp-autoprefixer": "^3.0.2",
"gulp-concat-css": "^2.2.0",
"gulp-imagemin": "^2.3.0",
"gulp-jspm": "^0.3.2",
"gulp-less": "^3.0.3",
"gulp-minify-css": "^1.2.1",
"gulp-notify": "^2.2.0",
"gulp-rename": "^1.2.2",
"imagemin-pngquant": "^4.2.0",
"jspm": "^0.16.11"
},
"jspm": {
"configFile": "jspm.config.js",
"dependencies": {
"jquery": "github:components/[email protected]^2.1.4",
"jquery-mask-plugin": "npm:[email protected]^1.13.4",
"jquery-validation": "github:jzaefferer/[email protected]^1.14.0"
},
"devDependencies": {
"babel": "npm:[email protected]^5.8.24",
"babel-runtime": "npm:[email protected]^5.8.24",
"core-js": "npm:[email protected]^1.1.4",
"traceur": "github:jmcriffey/[email protected]",
"traceur-runtime": "github:jmcriffey/[email protected]"
}
}
}
Отчаявшись решить эту ситуацию, как я понимаю, что там может быть много причин для этого. Возможно, кто-то сталкивается с подобной проблемой с этой настройкой.
Похоже, что ваши классы не транслируются в ES5 с помощью трассировщика. – nils
Почему ваш конфиг упоминает как 'babel' _and_' traceur'? – loganfsmyth
@loganfsmyth: это в основном для тестовых целей, поскольку я пытался переключить транспилер. – Nevertheless