Javascript 在不安装依赖项的情况下安装NPM模块

Javascript 在不安装依赖项的情况下安装NPM模块,javascript,npm,yarnpkg,package-managers,umd,Javascript,Npm,Yarnpkg,Package Managers,Umd,我们有一个使用NPM作为包管理器的项目。我们使用Webpack构建一个Javascript应用程序,由Rails应用程序使用。该应用程序是完全独立的,构建在包中包含的/dist目录中。出于超出此问题范围的原因,Rails应用程序将此应用程序作为UMD模块使用,通过脚本标记加载并初始化它: App({}) 问题是包有大量依赖项。Rails应用程序安装包时,也会安装包的所有依赖项,尽管它不需要或不使用任何这些依赖项,因为它所需要的一切都存在于应用程序包中 Rails应用程序是否可以安装该软件包(并

我们有一个使用NPM作为包管理器的项目。我们使用Webpack构建一个Javascript应用程序,由Rails应用程序使用。该应用程序是完全独立的,构建在包中包含的
/dist
目录中。出于超出此问题范围的原因,Rails应用程序将此应用程序作为UMD模块使用,通过脚本标记加载并初始化它:

App({})
问题是包有大量依赖项。Rails应用程序安装包时,也会安装包的所有依赖项,尽管它不需要或不使用任何这些依赖项,因为它所需要的一切都存在于应用程序包中

Rails应用程序是否可以安装该软件包(并在
/dist
目录中访问该应用程序),而无需安装所有软件包的依赖项?

请注意,我们不希望将所有依赖项都移动到应用程序的
devDependencies
,因为这会让人感到困惑(我们可能会以多种方式分发应用程序,包括通过es6导入)。还要注意的是,我们使用纱线作为包装管理器


为了澄清,我们使用NPM作为与Rails应用程序共享版本发布的一种手段,但是Rails应用程序包中唯一关心的是UMD模块。Rails应用程序能够执行
纱线添加是非常有用的Example@latest
并立即启动最新版本的应用程序,但是,它不需要解析软件包或其依赖项,因为它们已经烘焙到UMD模块中。

如果您已经使用webpack在dist文件夹中构建了应用程序,那么您根本不需要使用npm安装任何东西,因为webpack已经将它们打包在捆绑包中。但要快速回答您的问题,没有办法做到这一点,您可能不想这样做,因为这会破坏您正在安装的软件包。但也许我在这里遗漏了什么。@Shimmy568我也在想同样的事情。JS应用程序包通过
脚本
标记包含在项目中。所以我有点不清楚为什么会有安装过程。@marshy101我们只是使用NPM包作为将包分发到Rails应用程序的一种方式。它使我们可以轻松地推送版本更新,并让Rails应用程序使用它们。关键是它使用NPM作为安装包的一种方式,但只需要包来获得UMD模块,而不需要安装包及其依赖项,因为包和依赖项已经烘焙到UMD模块中。@我想现在明白了。但是,就我而言,防止npm安装依赖项的唯一方法是将它们从package.json中完全移出或移入dev(您不想这样做)。也许解决方案是为不同的环境管理不同的package.json-尝试投票以缓解标签混淆。如果您已经使用webpack在dist文件夹中构建了应用程序,那么您根本不需要使用npm安装任何东西,因为webpack已经将它们打包在捆绑包中。但要快速回答您的问题,没有办法做到这一点,您可能不想这样做,因为这会破坏您正在安装的软件包。但也许我在这里遗漏了什么。@Shimmy568我也在想同样的事情。JS应用程序包通过
脚本
标记包含在项目中。所以我有点不清楚为什么会有安装过程。@marshy101我们只是使用NPM包作为将包分发到Rails应用程序的一种方式。它使我们可以轻松地推送版本更新,并让Rails应用程序使用它们。关键是它使用NPM作为安装包的一种方式,但只需要包来获得UMD模块,而不需要安装包及其依赖项,因为包和依赖项已经烘焙到UMD模块中。@我想现在明白了。但是,就我而言,防止npm安装依赖项的唯一方法是将它们从package.json中完全移出或移入dev(您不想这样做)。也许解决方案是为不同的环境管理不同的package.json,试试投票来缓解标签混淆。