通过带有依赖项的jspm安装npm软件包

时间:2016-08-11 09:46:32

标签: javascript npm jspm

我了解我可以通过运行npm来安装jspm jspm install npm:<pkg-name>个包,这将允许我在开发中使用它(例如在我的JS文件中:{{1} })。

如果import myPackage from 'myPackage';包的package.json文件包含依赖项,我希望它也能在包中安装它们。所以在这个包文件夹中,我希望有一个npm文件夹包。但是,当我运行命令安装node_modules软件包时,它不会安装npm,我必须手动转到该文件夹​​并运行node_modules才能显示这些文件夹。这意味着我无法在不手动运行此命令的情况下引用包本身中的其他文件/依赖项。我可以通过npm install运行以确保安装这些内容吗?

3 个答案:

答案 0 :(得分:0)

不,你不能做当前的JSPM,我相信JSPM还没有真正解决NPM包。我认为有这方面的工作,但在我发言时没有。

我建议您看一下以下maven插件:

Front end plugin

我们已在多个项目中使用它,它允许您运行多种不同的安装风格,以便您可以将项目绑定在一起。

您需要从此处安装maven 3:

Maven download

然后,您将需要一个基本的pom.xml来运行jspm install以及npm install。 然后,您可以运行Karma测试并从此设置进行编译。

来自文档:

<execution>
    <id>jspm install</id>
    <goals>
        <goal>jspm</goal>
    </goals>

    <configuration>
        <!-- optional: The default argument is actually
        "install", so unless you need to run some other jspm command,
        you can remove this whole <configuration> section.
        -->
        <arguments>install</arguments>
    </configuration>
</execution>

将启动jspm安装,最后:

<execution>
    <id>npm install</id>
    <goals>
        <goal>npm</goal>
    </goals>

    <!-- optional: default phase is "generate-resources" -->
    <phase>generate-resources</phase>

    <configuration>
        <!-- optional: The default argument is actually
        "install", so unless you need to run some other npm command,
        you can remove this whole <configuration> section.
        -->
        <arguments>install</arguments>
    </configuration>
</execution>

将为您提供npm安装。这将为您安装一切,并为您的环境提供一站式服务。我们现在已经使用这个工具了一段时间,它一直被发现是可靠的,灵活的并且将各种工具绑定在一起 - 它也得到很好的支持。

答案 1 :(得分:0)

以下是您可以运行的命令列表:

jspm install npm:myDependency
jspm install --no-optionnal
jspm install github:authorGithubAccount/myDependency
npm install myDependency

两者都有一些依赖关系,但并非总是如此,也不在同一个结构中。 虽然jspm可以处理node.js模块系统。 也许您尝试添加的依赖项没有node_modules。

答案 2 :(得分:0)

替代

作为替代方案,我可以建议dynamic-cdn-webpack-plugin,这个技巧是在开发环境中,您的项目中将拥有node_modules文件夹,而对于生产环境,它将在HTML中注入依赖项。

?优势

  • 您将获得cache benefits
  • 小包,因为它仅包含应用程序代码。

?缺点

例如,您可以选中此project