通过jspm安装npm包及其依赖项

30
我知道可以通过运行jspm install npm:<pkg-name>来安装npm包,这将允许我在开发中使用它(例如,在我的JS文件中:import myPackage from 'myPackage';)。
如果npm包的package.json文件包含依赖项,我希望也能够在该包中安装这些依赖项。因此,在该包文件夹中,我期望看到一个带有包的node_modules文件夹。然而,当我运行安装npm包的命令时,它没有安装node_modules,我不得不手动进入文件夹并运行npm install才能出现这些依赖项。这意味着我无法引用包本身内的其他文件/依赖项,除非手动运行此命令。在jspm中有什么我可以运行以确保这些安装吗?
3个回答

1
这是一个可以运行的命令列表:

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

一些依赖在两者上都可用,但并不总是以相同的结构存在。 尽管jspm可以处理node.js模块系统。 也许你尝试添加的依赖项没有node_modules。

1

一种替代方案

我可以建议 dynamic-cdn-webpack-plugin 作为替代方案,关键在于在开发环境中,您将在项目中拥有 node_modules 文件夹,并且在生产环境中它会从 cdn 服务器注入依赖项。

优点

  • 您将获得 缓存优势
  • 小的捆绑大小,因为它只包含应用程序代码。

缺点

例如,您可以检查此 项目


1

目前在JSPM中你不能这样做,我认为JSPM实际上还没有解决NPM包的问题。我想有人正在处理这个问题,但我说话时还不可用。

我建议你看一下以下的Maven插件:

前端插件

我们在几个项目中使用过它,它允许你运行多种不同的安装方式,以便你可以将你的项目绑定在一起。

你需要从这里安装Maven 3:

Maven下载

然后你需要一个基本的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安装。这将为您安装所有内容,并为您的环境提供一站式服务。我们已经使用这个工具一段时间了,它始终被认为是可靠、灵活并将各种工具绑定在一起-它也得到了良好的支持。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接