我正在将现有的Aurelia应用程序从JSPM / SystemJS移植到Aurelia CLI。
我无法将babel-runtime
和相关联的转换用于au build
。我认为问题归因于babel-runtime
中所需的aurelia.json
依赖关系 - 我无法解决它应该是什么,目前它看起来如下所示:
...
{
"name": "babel-runtime",
"path": "../node_modules/babel-runtime",
"main": "core-js",
"resources": [
"./regenerator/index.js"
]
}
...
我有以下(相关)devDependencies:
...
"babel-plugin-syntax-flow": "^6.8.0",
"babel-plugin-transform-async-to-generator": "^6.22.0",
"babel-plugin-transform-builtin-extend": "^1.1.2",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-plugin-transform-es2015-modules-amd": "^6.8.0",
"babel-plugin-transform-es2015-modules-commonjs": "^6.10.3",
"babel-plugin-transform-es2015-modules-systemjs": "^6.9.0",
"babel-plugin-transform-flow-strip-types": "^6.8.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-polyfill": "^6.23.0",
"babel-preset-es2015": "^6.13.2",
"babel-preset-stage-1": "^6.5.0",
"babel-register": "^6.9.0"
...
和(相关)依赖关系:
"babel-runtime": "^6.23.0",
我的.babelrc
:
{
"sourceMap": true,
"moduleIds": false,
"comments": false,
"compact": false,
"code": true,
"presets": [
["es2015", {"loose": true}],
"stage-1"
],
"plugins": [
"syntax-flow",
"transform-decorators-legacy",
"transform-async-to-generator",
["transform-runtime", {
"polyfill": false,
"regenerator": true
}],
"transform-flow-strip-types",
["transform-builtin-extend", {
"globals": ["Array"]
}]
]
}
在au build
上我收到以下类错误:
File not found or not accessible: D:/code/.../node_modules/babel-runtime/regenerator.js. Requested by D:\code\...
File not found or not accessible: D:/code/.../node_modules/core-js/library/fn/symbol.js. Requested by D:\code\...
在Aurelia CLI应用中成功设置babel-runtime
的人可以帮忙吗?
更新
我已经设法通过列出它似乎引用的所有babel-runtime
和core-js
依赖项来使构建工作.... 这是正确的方法吗?
{
"name": "babel-runtime",
"path": "../node_modules/babel-runtime",
"main": "core-js"
},
{
"name": "babel-runtime/regenerator",
"path": "../node_modules/babel-runtime/regenerator",
"main": "index"
},
{
"name": "babel-runtime/core-js",
"path": "../node_modules/babel-runtime/core-js"
},
{
"name": "core-js",
"path": "../node_modules/core-js",
"main": "index"
},
{
"name": "core-js/library",
"path": "../node_modules/core-js/library",
"main": "index"
},
{
"name": "regenerator-runtime",
"path": "../node_modules/regenerator-runtime",
"main": "runtime-module"
},
...
但是我现在看到来自require的运行时错误,这似乎表明我的依赖关系没有以正确的顺序加载
Uncaught Error: Module name "_export" has not been loaded yet for context: _. Use require([])
Uncaught Error: Module name "shim" has not been loaded yet for context: _. Use require([])
任何人都可以帮忙吗?
答案 0 :(得分:1)
我已经设法让这个工作....我从一个空的平板开始并逐个添加了移动部件,但是Aurelia CLI也有一些更新,所以我并非完全确定是否是我做错了,或者CLI中的问题已经解决。
我的.babelrc
现在非常简单,第1阶段预设足以让异步转换工作:
{
"sourceMap": true,
"moduleIds": false,
"comments": false,
"compact": false,
"code": true,
"presets": [
["es2015", {"loose": true}],
"stage-1"
],
"plugins": [
"transform-runtime",
"transform-decorators-legacy"
]
}
core-js
中babel-runtime
和aurelia.json
相关的捆绑依赖项是:
"dependencies": [
{
"name": "core-js",
"path": "../node_modules/core-js",
"main": "client/core",
"deps":[
"../node_modules/core-js/shim",
"../node_modules/core-js/library/**/*.js",
"../node_modules/core-js/modules/**/*.js"
]
},
{
"name": "regenerator-runtime",
"path": "../node_modules/regenerator-runtime",
"main": "runtime"
},
{
"name": "babel-runtime",
"path": "../node_modules/babel-runtime",
"main": "regenerator/index",
"deps": [
"../node_modules/babel-runtime/core-js/**/*.js",
"../node_modules/babel-runtime/helpers/**/*.js"
]
},
{
"name": "babel-runtime/regenerator",
"path": "../node_modules/babel-runtime/regenerator",
"main": "index"
},
...
和package.json相关位:
"dependencies": {
...
"babel-runtime": "^6.23.0",
"core-js": "^2.4.1",
...
},
"devDependencies": {
...
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-plugin-transform-es2015-modules-amd": "^6.8.0",
"babel-plugin-transform-es2015-modules-commonjs": "^6.10.3",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-es2015": "^6.13.2",
"babel-preset-stage-1": "^6.5.0",
....
}
希望这可以帮助其他任何人尝试这项工作!