2017-04-06 45 views
0

我正在将现有的Aurelia应用程序从JSPM/SystemJS移植到Aurelia CLI。Aurelia CLI,babel运行时和异步转换

我在遇到问题babel-runtime和相关转换工作au build时遇到问题。我认为这个问题是由于aurelia.json所需的babel-runtime依赖 - 我不能工作了,应该是什么样,现在它看起来像下面这样:

... 
{ 
    "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\... 

可能有人谁已经成功地建立了babel-runtime在奥里利亚CLI应用程序,请帮助?

更新

我设法构建由列出所有babel-runtimecore-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" 
}, 
... 

但是我现在看到需要运行时错误,这似乎表明,我的依赖不会被加载正确的顺序

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([]) 

任何人都可以在这方面帮助?

+1

你实际上没有告诉我们出了什么问题。 – loganfsmyth

+0

@loganfsmyth抱歉只是注意到并更新了!谢谢 –

+0

确保你正在加载的库(babel-runtime)在AMD中。它看起来也许它有一些奇怪的语法,它用来加载依赖关系... – Andrew

回答

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-jsbabel-runtimeaurelia.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", 
    .... 
    } 

希望这可以帮助其他人尝试做这项工作!