【问题标题】:npm install everything except named packagenpm install 除了命名包之外的所有东西
【发布时间】:2020-11-20 11:34:47
【问题描述】:

我的 Dockerfile 的摘录,它构建了我的 Angular 应用程序:

# Do other stuff
RUN npm install
# next line executes ng build --prod
RUN npm run build:prod

npm install 用于构建目的。 devDependencies 中的一些包——尤其是 cypress——需要很长时间才能安装,并且在构建中不需要。但是需要devDependencies中的一些包。

例如,我可以通过 npm 安装除 cypress 之外的所有内容吗?

npm install --only=prod 不是一个选项,因为需要一些 devDependencies。

提前感谢您的想法。

【问题讨论】:

    标签: node.js angular docker


    【解决方案1】:

    只是一个建议。使用install-subset,可以使用npm install -g install-subset全局安装

    要使用它,您可以为 package.json 中的命名安装子集构建包含列表和排除列表,如下所示:

    "subsets": {
        "build": {
            "include": [
                "babel-cli",
                "dotenv"
            ]
        },
        "test": {
            "exclude": [
                "eslint",
                "lint-rules",
                "prettier"
            ]
        }
    }
    

    然后运行install-subset test

    这将暂时重写你的 package.json 以不安装那些排除的包,然后恢复它(非常类似于 lerna 的操作方式),这取决于包可以节省大量时间和带宽。

    【讨论】:

    • 从不喜欢使用维护不好或不受欢迎的软件包 - 但是,在这种情况下我可能会例外 - 非常感谢 :) 尽管欢迎其他想法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    相关资源
    最近更新 更多