fex-team / fis3-hook-node_modules

fis3 node_modules 支持
81 stars 12 forks source link

css中@require normalize.css没有效果 #17

Closed fancyboynet closed 8 years ago

fancyboynet commented 8 years ago

没有按预期地将node_modules中的normalize.css载入

/**
 * @require normalize.css
 */
andycall commented 8 years ago

应该用 require('normalize.css')

引入css和图片都使用引入js的方式来引入

fancyboynet commented 8 years ago

可是有一些仅仅是css中的相互依赖,并不涉及js,也都强制用js依赖是不是不太好? 原来的方案是支持的

ascoders commented 8 years ago

其实这种注释依赖在npm生态中并不规范,css的相互依赖也应该用sass less的import

fancyboynet commented 8 years ago

注释依赖虽然不是规范,但是是fis提供的很实在的功能,而且也不一定要用sass/less吧 现在把组件生态搬到npm中,很好,不过原先fis的一些实用功能希望能保留,这个跟npm规范没关系吧,毕竟前端不是仅仅只有js

2betop commented 8 years ago

亲,我刚刚试了下没问题啊,是不是版本问题?

/**
 * @require normalize.css
 */
2betop commented 8 years ago

还有一个可能是,你是不是没有启用 loader 插件,这个用法只是简单的标记依赖关系而已,没有 loader 插件,依赖不会加载进来。

fancyboynet commented 8 years ago

@2betop 找到原因了,原来是配置里短路径的问题,改成package的形式就好了

2betop commented 8 years ago

咦,我刚刚啥也没配置,就是用 npm install normalize.css 然后就能用了,用 npm 安装的直接就能短路径,为何还要配置 package 呢?

fancyboynet commented 8 years ago

不是,是我项目内部自定义的模块(components/app/reset/reset.css)想启用短路径引用,结果失败了,导致reset.css里引用 normalize.css就失败了 配置是之前用fis-components方案搬过来的

fancyboynet commented 8 years ago

发现个新问题,js中注释可以找到normalize.css,直接_require(‘normalize.css’)_反而会找不到

/**
 * @require normalize.css 
 */
require('normalize.css');  //找不到
var $ = require('jquery');
require('app/nav/nav');
require('fullpage.js');
$(function(){
    $('#fullPage').fullpage({
        scrollingSpeed: 600,
        navigation : true
    });
});

error:

mod.js:65 Uncaught Error: Cannot find module `node_modules/normalize.css/normalize.css`

package:

"devDependencies": {
    "fis3-hook-commonjs": "^0.1.14",
    "fis3-hook-node_modules": "^1.1.5"
  }
2betop commented 8 years ago

亲测有用啊,你是不是没有引入插件啊 https://github.com/fex-team/fis3-preprocessor-js-require-css

fancyboynet commented 8 years ago

额,还真是,不好意思,我错了