【问题标题】:How to use React Module CSS in Meteor 1.3 beta如何在 Meteor 1.3 beta 中使用 React Module CSS
【发布时间】:2016-05-09 19:45:19
【问题描述】:

编辑:Meteor 1.3 版本已经发布,npm package 即将发布,允许在没有 Webpack 的情况下直接使用 CSS 模块


我想通过 NPM 在 Meteor 1.3 中使用 https://github.com/gajus/react-css-modules。但是自述文件说要使用 Webpack。我从未使用过 Webpack,因为在我看来,它的构建工作与 Meteor 相同。

那么你知道在这种特殊情况下,在 Meteor 1.3 beta 中使用 React Module CSS 的方法吗?

【问题讨论】:

    标签: meteor reactjs webpack react-css-modules


    【解决方案1】:

    实际上有这个包。 MDG 也在考虑在某个阶段将 webpacks 引入流星核心。是的,它是构建工具。只是比目前的更模块化和更快。至少在我看来,随着构建工具的发展,它也非常复杂。

    在meteor中使用webpacks >

    meteor add webpack:webpack
    meteor remove ecmascript
    

    您还需要在从 webpack 获取 ecmascript 时删除它们,并且安装 2 次可能会导致错误。

    如需更完整的答案,请查看 Sam Corcos 博客文章以及 Ben Strahan 对 Meteor 1.3 Beta 的评论。我用它作为教程来获取不同的 webpack 包。

    https://medium.com/@SamCorcos/meteor-webpack-from-the-ground-up-f123288c7b75#.phcq5lvm8

    对于你提到的包,我认为webpack.packages.json 应该是这样的

    {
      "private": true,
      "scripts": {
        "start": "webpack-dev-server"
      },
      "devDependencies": {
        "babel-core": "^6.4.5",
        "babel-loader": "^6.2.1",
        "babel-preset-es2015": "^6.3.13",
        "babel-preset-react": "^6.3.13",
        "babel-preset-stage-0": "^6.3.13",
        "css-loader": "^0.23.1",
        "extract-text-webpack-plugin": "^1.0.1",
        "style-loader": "^0.13.0",
        "webpack": "^2.0.6-beta",
        "webpack-dev-server": "^2.0.0-beta"
      },
      "dependencies": {
        "react": "^0.15.0-alpha.1",
        "react-css-modules": "^3.7.4",
        "react-dom": "^0.15.0-alpha.1"
      }
    

    而 webpack.config.js 你可以直接从

    复制

    https://github.com/gajus/react-css-modules-examples/blob/master/webpack.config.js

    【讨论】:

    • 现在说 Meteor 将使用 Webpack 还为时过早。 youtube.com/watch?v=hk0h_7-N9hA
    • 我说考虑,但我同意评论。我希望不是。 Webpack 什么都做,但使用起来太复杂了,至少我从来不需要 90% 的功能
    • 感谢您的回答 Kimmo。但我什至不会说“考虑”,因为这篇文章 forums.meteor.com/t/… Benjamin(在 MDG 从事 Meteor 的构建部分工作)说明了他为什么不赞成 Webpack 方式。然而,github.com/thereactivestack/meteor-webpack/tree/master/packages/… 几天后确实可以用于 Meteor 1.3。不幸的是,我不再需要这个包,也没有时间运行测试。如果您想获得赏金,请您进行测试并显示结果。那我就接受你的回答。
    • 我正要评论,因此我可能需要测试它的赏金问题。我明天找时间试试,别人可以拿学分。
    • 赏金是自动给你的,因为你得到了 2 票。有趣的是你得了+125而我得了-250。数学是错误的=p
    【解决方案2】:

    Meteor v1.3.2 为 .css 文件(以及其他 CSS 预处理器文件,例如 lesssass)从 .js.jsx 中引入了内置导入功能。

    例如,给定以下(简化的)文件夹结构,

    . ├── 客户 │   └── main.js ├── 进口 │   └── 客户 │   ├── main.css │   └── main.jsx ├── 节点模块 │   └── 一些模块 │   └── dist │   └── css │   └── main.css ├── package.json └── 服务器 └── main.js

    其中some-module 是使用以下方式安装的 npm 模块:

    $ meteor npm install --save some-module
    

    imports/client/main.jsx 中导入本地和模块样式表:

    // importing a style file from a node module
    import 'some-module/dist/css/main.css';
    
    // importing a style from a local file
    import './main.css';
    

    【讨论】:

    【解决方案3】:

    你可以像这样从头开始。

    从头开始

    meteor create test-project
    cd test-project
    npm init
    meteor remove ecmascript
    meteor add webpack:webpack
    meteor add webpack:react
    meteor add webpack:less
    meteor add react-runtime # Skip this step if you want to use the NPM version
    meteor add react-meteor-data
    meteor
    npm install
    meteor
    

    输入文件

    您的入口文件在您的 package.json 中定义。主要是你的服务器入口,浏览器是你的客户端入口。

    {
      "name": "test-project",
      "private": true,
      "main": "server/entry.js",
      "browser": "client/entry.js"
    }
    

    更多信息请查看link

    【讨论】:

      猜你喜欢
      • 2016-08-12
      • 2016-06-13
      • 1970-01-01
      • 2016-12-07
      • 1970-01-01
      • 2016-07-17
      • 1970-01-01
      • 2016-09-07
      • 2016-08-07
      相关资源
      最近更新 更多