我可以使用 NPM 安装 Polymer (1.0) 吗?

Can I install Polymer (1.0) with NPM?

我正在尝试在一个新项目中使用 Polymer,并试图避免使用 Bower 以支持 NPM 进行前端依赖管理。

getting started 页面提供了使用 Bower(以及使用 .zip 文件等...)的说明,但没有提及 NPM。

我以前通过直接指向 GitHub 存储库来使用 NPM,但我似乎无法让它在 Polymer 上工作。

当我运行这个:

npm install git@github.com:Polymer/polymer.git#v1.0.5

我收到这个错误:

npm ERR! notarget No compatible version found: git@'github.com:Polymer/polymer.git'

npm ERR! notarget Valid install targets:

npm ERR! notarget ["0.1.0","0.1.1","0.1.2","0.1.3","0.1.4","0.1.5"]

我是否遗漏了什么,或者我是否需要硬着头皮使用 Bower?

编辑 2016/10/25 Polymer 团队在 Polymer Summit 2016 that they will be looking into supporting npm via yarn.

上宣布

[sudo] npm install -g yarn yarn add Polymer yarn install --flat

老遮阳棚

目前没有办法我知道得到聚合物运行 NPM。

Polymer 旨在与 Bower 一起使用。将不会下载在 https://github.com/Polymer/polymer/blob/master/bower.json 中声明的 Polymer 的所有依赖项,如 webcomponentsjs。因此,如果您不想手动下载每个依赖项,您应该使用 bower。

尝试安装 bower 方法!

"npm install -g bower"

然后在您的文件夹中输入 :

"bower init"

按照说明进行操作,然后键入:

"bower install --save Polymer/polymer

创建一个index.html文件并开始工作!!!

Polymer 的主要问题是标记的构建提交没有 package.json,因此无法使用 npm 安装它们(例如参见 [​​=20=].

Napa 是用于安装 git 个没有(有效)package.json 项目的软件包。 npm 页面已经解释了如何使用它,这里是 Polymer 的快速摘要:

  1. npm install napa --save-dev
  2. 更新您的 package.json 以包含此内容(将 x.y.z 替换为您想要的版本):

    {
        "scripts" : {
            "install" : "napa"
        },
        "napa" : {
            "polymer" : "polymer/polymer#vX.Y.Z"
        }
    }
    

请注意,napa 只是将 repo 克隆到 node_modules 文件夹中,因此不会同时安装 polymer 的依赖项,但您可以将所有配置保留在 package.json 而不是必须使用凉亭。

自较早的回答以来,Polymer 现在确实 become available 在 NPM 上。要安装它:

npm i Polymer

请注意,它不包括标准元素集合;可以找到 here:

npm i npm-polymer-elements

然后您可以将它们包含在您的 HTML:

<!-- for custom elements -->
<link rel="import" href="/node_modules/@polymer/polymer/polymer.html"/>
<!-- for standard elements -->
<link rel="import" href="/node_modules/paper-button/paper-button.html"/>
<paper-button>click</paper-button>

不幸的是,当前 doesn't seem possible yet 通过 webpack 加载 Polymer,这意味着如果您的 node_modules(或 bower_components)文件夹不在可公开访问的位置,您可能需要制作一个 Grunt/Gulp 任务将其复制过来以备将来更新...