【问题标题】:Combine CSS files into single file using NPM使用 NPM 将 CSS 文件合并为单个文件
【发布时间】:2016-02-10 19:19:31
【问题描述】:

我的项目中有几个 css 文件。我想仅通过 NPM 将它们合并为一个(没有 gulp 或 grunt)。

我听说过 ccs-merge 和其他节点模块,但没有看到任何实际示例。 实现它的最好和最简单的方法是什么?

已编辑:

这是我的项目结构:

Client/
     ├──js/
         |──component1  
               ├──one.css 
               ├──one.js 
         |──component2  
               ├──two.css 
               ├──two.js 
    ├──output/
    └──package.json

我想直接从 NPM 脚本将我所有的 CSS 文件合并到一个文件中。 这是我当前的 package.json

"scripts": {
    "start": "watchify -o Client/js/bundle.js -v -d Client/js/app.jsx",
    "build": "browserify . -t [envify --NODE_ENV production] | uglifyjs  -cm > Client/js/bundle.min.js",
    "concat-css": "css-concat  Client/js/*.css > Client/js/styles.css"
  },

concat-css 命令不起作用。 “失败于......'css-concat......'

【问题讨论】:

    标签: npm


    【解决方案1】:

    这是我能想到的最简单的例子。给定以下项目结构和文件:

    project/
    ├──css/
    |  ├──one.css
    |  └──two.css
    ├──output/
    └──package.json
    

    project/css/one.css:

    .one {
      color: red;
    }
    

    project/css/two.css:

    .two {
      text-align: center;
    }
    

    project/package.json:

    {
      "name": "project",
      "version": "1.0.0",
      "scripts": {
        "concat-css": "cat css/* > output/all.css"
      }
    }
    

    您可以在终端中运行它:

    $ npm run concat-css
    
    > project@1.0.0 concat-css /path/to/project
    > cat css/* > output/all.css
    

    这会导致 project/output/all.css:

    .one {
      color: red;
    }
    .two {
      text-align: center;
    }
    

    这显然过于简单化了,但它应该展示了这个概念。您可以通过npm run scripts 将多个 shell 命令连接在一起,甚至可以从其他运行脚本中调用运行脚本。

    Here's a very good article about this topic by Keith Cirkel(不需要咕哝。)

    【讨论】:

    • 感谢您的回答。但是我仍然无法使其工作。我已经用更多上下文更新了我的问题。
    • 请注意,两个示例之间的关键区别在于 css 文件的相对位置。在 OP 中,文件位于两个单独的目录中,因此无法使用示例 cat css/* 命令选择它们。像cat Client/js/*/*.css 这样的东西应该可以工作
    • 它仍然不起作用 - 我不断收到 - npm ERR!缺少脚本:concat-css
    • @DennisNerush 看来您的 npm 运行脚本正在尝试使用模块名称 css-concat,对吗?我的答案中的示例仅使用本机操作系统 bin cat。我的猜测是您没有正确使用/调用css-concat。我不熟悉该模块,因此无法真正帮助您,但是您是否尝试过使用cat(或css-concat以外的其他东西)来代替?
    • Cat 不能在 Windows 上使用通配符。你有别的想法吗?
    猜你喜欢
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    相关资源
    最近更新 更多