我正在测试我的第一个Meteor应用程序的部署,并考虑使用Meteor Up。经过一番摸索后,我成功地运行了mup setup
而没有出现任何错误,一切看起来都很好。
然而,运行mup deploy
失败了:
$ mup deploy
Building App Bundle Locally
Errors prevented bundling:
While minifying app code:
eval at <anonymous>
(/home/yanick/.meteor/packages/standard-minifier-js/.1.2.1.s85ddv++os+web.browser+web.cordova/plugin.minifyStdJS.os/npm/node_modules/meteor/minifier-js/node_modules/uglify-js/tools/node.js:28:1),
<anonymous>:1545:18: SyntaxError: Unexpected token: name (Converter)
at new JS_Parse_Error (eval at <anonymous>
(/home/yanick/.meteor/packages/standard-minifier-js/.1.2.1.s85ddv++os+web.browser+web.cordova/plugin.minifyStdJS.os/npm/node_modules/meteor/minifier-js/node_modules/uglify-js/tools/node.js:28:1),
<anonymous>:1545:18) at js_error (eval at <anonymous>
...
有问题的文件似乎是一个名为
Converter.js
的文件,但这个文件并不复杂,只是导出一些 JSON 对象。import Converter from 'universal-converter';
export default Converter;
export const DEFAULT_UNIT = 'unit';
export const Units = {
'unit': {
'type': 'unit',
'name': 'unit'
},
'inch': {
'type': 'distance',
'name': 'inch',
'label': 'in'
},
'inch2': {
'type': 'area',
'name': 'square inch',
'label': 'in²'
},
'foot': {
'type': 'distance',
'name': 'foot',
'label': 'ft'
},
'foot2': {
'type': 'area',
'name': 'square foot',
'label': 'ft²'
},
'yard': {
'type': 'distance',
'name': 'yard',
'label': 'yd'
},
'yard2': {
'type': 'area',
'name': 'square yard',
'label': 'yd²'
},
'cm': {
'type': 'distance',
'name': 'centimeter',
'label': 'cm'
},
'm': {
'type': 'distance',
'name': 'meter',
'label': 'm'
},
'g': {
'type': 'mass',
'name': 'gram',
'label': 'g'
},
'kg': {
'type': 'mass',
'name': 'kilogram',
'label': 'kg'
},
'lb' : {
'type': 'mass',
'name': 'pound',
'label': 'lb'
},
'oz': {
'type': 'mass',
'name': 'once [France]',
'label': 'oz'
},
'liter': {
'type': 'volume',
'name': 'liter',
'label': 'L'
},
'gal': {
'type': 'volume',
'name': 'gallon [US, liquid]',
'label': 'Gal'
},
'oz_v': {
'type': 'volume',
'name': 'ounce [UK, liquid]',
'label': 'oz'
}
};
为什么
meteor
可以正常运行,但是创建应用程序的捆绑包失败?
更新1
我尝试过重构我的应用程序目录,移动构建文件位置,但没有改变。这个命令:meteor build ../output
(路径在项目根文件夹之外)如上所述失败。
uglifyJS
正在尝试压缩您的 ES2015 代码,但未能成功。我不确定该怎么解决,但希望这个指针对您有用。 - MasterAMuniversal-converter
模块中使用了class
,导致构建失败,对吧? - Yanick Rochonbabel
作为开发依赖项添加到该模块中,并添加了prepublish
步骤。现在它可以部署了,但这不是一个可行的解决方案,只是一个hack。如果Meteor在开发中可以正常运行,那么它应该能够构建生产环境。我在相关问题#4828中评论了这一点。 - Yanick Rochon