在Meteor上安装本地软件包

Xiv*_*Xiv 23 meteor

我正试图在Meteor上运行本地包.

我有一个正确的package.js,有一个smart.json,它在我的Meteor项目的my/packages目录中.我项目中的smart.json看起来像这样:

{ 
    "packages": {
        "router": {},
        "userErrors": {
            "path": "/home/user/Documents/project/packages/userErrors" 
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

而且我正在使用api.add_files.当我从packages文件夹中取出代码时,代码运行正常.为了让这个包运行,我有什么东西不见了吗?我用mrt命令运行Meteor .

Ron*_*ert 33

尝试将您的文件放在应用程序的"packages"目录中并执行:meteor add [package-name]

  • 有人可以澄清'packages'目录在哪里?似乎有四种不同的候选者:./.meteor/local/build /programs/web.browser/packages ./.meteor/local/build/programs/server/assets/packages ./.meteor/local/build/programs/server/packages ./.meteor/local/build/programs/ctl/packages (2认同)

udo*_*dan 31

默认情况下,来自0.9的Meteor没有"packages"目录,但仍会将其用于本地程序包.如果它不存在则创建它.

cd <your-app>
mkdir packages
Run Code Online (Sandbox Code Playgroud)

您本地开发的包需要在此文件夹中.当然,您只需创建一个符号链接即可.您可以自己使用ln -s或使用mrt的功能:

mrt link-package /path/to/<your-package>
Run Code Online (Sandbox Code Playgroud)

请注意,如果提供相对路径,则必须相对于packages目录,而不是相对于当前位置.所以你可能想先cd进入packages目录以避免混淆.

最后添加包:

meteor add <your-package>
Run Code Online (Sandbox Code Playgroud)

重要提示:<your-package>需要在您的内部描述名称package.js.文件夹/符号链接的名称与此过程无关.

Package.describe({
  name: "<your-package>"
});
Run Code Online (Sandbox Code Playgroud)

如果您的本地软件包与在线注册的软件包具有相同的名称,则将使用您的本地版本.


小智 10

接受的答案不如这个好:https://dweldon.silvrback.com/local-packages