在 Meteor 1.3 + angular1 上使用 npm(凹凸!)

Posted

技术标签:

【中文标题】在 Meteor 1.3 + angular1 上使用 npm(凹凸!)【英文标题】:Using npm on Meteor 1.3 + angular1 (bump!) 【发布时间】:2016-07-30 04:21:30 【问题描述】:

编辑备注: 随着我的进步,我正在改变这个问题。会持续更新。

我已将我的 angular-meteor 项目(Meteor 1.2.1 + jam + ES6 js)升级到 1.3。更新成功,一切正常。我想开始使用 npm 安装 angular 插件,如下所示:

meteor npm i <package>

作为第一步,我已经安装了 angular 和 angular-meteor:

meteor npm i angular --save
meteor npm i angular-meteor --save

然后补充:

import angular from 'angular';
import 'angular-meteor';

我在服务器端遇到了一些缺少包的错误,并通过使用npm i &lt;package&gt; --save 添加它们来修复这些错误

现在我遇到了:

Error: Can't find npm module 'ecmascript'. Did you forget to call 'Npm.depends' in package.js within the 'modules-runtime' package?
W20160410-21:27:53.530(3)? (STDERR)     at Object.Npm.require (/Users/user/work/myproj/.meteor/local/build/programs/server/boot.js:195:17)

想法?

更新

我以为添加 ecmascript 会修复它,但安装时会发生错误。需要明确的是,我不确定是meteor add ecmascript 还是meteor npm i ecmascript,所以分别和一起尝试了。 Nether修复了上述错误。

话虽如此,meteor add ecmascript 实际上已经停止了 ES6 错误,所以我知道它在那里并且处于活动状态

第二次更新(3 周后)

几周后等待并重试更新解决了这个问题:我运行了Meteor update,然后运行了服务器,这反过来又出现了几次关于缺少 npm 包的错误,但在其中的[meteor] npm install 之后,一切正常一种魅力。问题解决了!

【问题讨论】:

你如何捆绑/转译你的代码?我猜你的 html 文件中有对 app.js 的引用(应该使用一些 systemjs / webpack 等异步加载),或者你错过了配置你的捆绑器 / 转译器。请提供更多信息。 我指望Meteor 捆绑和转译代码/模板。 Meteor 版本 1.2.1 完美地做到了这一点,升级到 1.3 后它也是如此。我在JS和jade中使用es6语法。升级到 Meteor 1.3 后这些仍然可以转换,但在我添加 import angular 语句后,Jade 和 ES6 语法都坏了 你能试试这个答案吗? ***.com/a/36494987/1426570 【参考方案1】:

在之前版本的 Meteor Angular 中,我们删除了 ecmascript,如果您要迁移,请将其添加回来

meteor add ecmascript

【讨论】:

我也这么认为,但它并没有解决错误 - 请参阅更新的评论【参考方案2】:

以下是对我有用的步骤: 1.流星更新 2.查看未升级的包并进行升级。具体如下所示:

以下***依赖项未更新到可用的最新版本: * 角度 1.3.7(1.3.10 可用) * angular-meteor-auth 0.2.2(1.0.2_1 可用)

以下间接依赖项的较新版本可用: * 角度流星数据 0.3.0(1.3.10 可用) * 角度模板 1.0.1(1.0.2 可用) * pbastowski:angular-babel@1.3.4

    meteor npm init(并填写所有详细信息)

    npm install --save angular angular-meteor

    在 app.js(主应用文件)上添加了以下导入:import angular from 'angular'; (我还添加了 import angularMeteor from 'angular-meteor';,但似乎没有必要)。

    我收到了一个 strict-di 错误,我通过添加 'ngInject' 修复了该错误;到那个函数(RoutingHandler)。

这使我的项目像以前一样工作(没有新的 npm 包,没有额外的导入)。

【讨论】:

以上是关于在 Meteor 1.3 + angular1 上使用 npm(凹凸!)的主要内容,如果未能解决你的问题,请参考以下文章

带有angular1.5组件meteor和ui-router的动态标题

Meteor 1.3+ 帐户 Facebook 登录 iOS 不工作

Meteor 1.3 导入 npm 模块问题

`npm install` 与 Meteor 1.3 中的 `meteor npm install` 相同吗?

如何在 Meteor 1.3 中通过 NPM 使用引导程序?

在 Meteor 1.3 中导入通过 npm 安装的外部 Javascript 库