node_modules流星中不工作的解构赋值

Destructuring assignment not working in node_modules meteor

本文关键字:赋值 工作 modules 流星 node      更新时间:2023-09-26

我有一个流星1.4.1.1应用程序与ecmascript@0.5.8。当我在主流星应用程序的任何文件中写入以下表达式时,一切都工作了。

const {a, b} = {a:1, b:2};

但是当相同的表达式在JS文件node_modules/some-module中出现时,meteor应用会失败,并出现以下错误:

W20160910-00:34:14.284(5.5)? (STDERR) const {a,b} = {a: 1, b: 2};
W20160910-00:34:14.284(5.5)? (STDERR)       ^ 
W20160910-00:34:14.285(5.5)? (STDERR) 
W20160910-00:34:14.285(5.5)? (STDERR) SyntaxError: Unexpected token {
W20160910-00:34:14.285(5.5)? (STDERR)     at exports.runInThisContext (vm.js:53:16)
W20160910-00:34:14.285(5.5)? (STDERR)     at Module._compile (module.js:373:25)
W20160910-00:34:14.285(5.5)? (STDERR)     at Object.Module._extensions..js (module.js:416:10)
W20160910-00:34:14.286(5.5)? (STDERR)     at Module.load (module.js:343:32)
W20160910-00:34:14.286(5.5)? (STDERR)     at Module.Mp.load (/home/chaudharyp/.meteor/packages/babel-compiler/.6.9.1.s4764v++os+web.browser+web.cordova/npm/node_modules/reify/node/runtime.js:16:23)
有谁能帮我一下吗?谢谢。

通常npm包是在es5中发布的,所以es6包在发布之前会被编译。因此,大多数构建设置告诉babel忽略node_modules文件夹。这很重要,因为如果它试图编译所有的npm包,它将严重减慢构建速度。我不熟悉这种流星设置,但我确信它遵循了这种常见的做法。

通常情况下,你不会直接在node_modules文件夹里乱搞。如果你正在开发自己的包,不想每次修改都要发布和更新,你应该试试npm link。然后你可以把你的包的"main"指向一个文件夹,比如你要编译代码的/dist。当您在包项目中进行转译时,您的流星项目将获取更新。