fex-team / fis3-hook-node_modules

fis3 node_modules 支持
81 stars 12 forks source link

无法找到正确的 node_modules 模块 #30

Closed ystarlongzi closed 8 years ago

ystarlongzi commented 8 years ago

fis 版本为 v3.3.29,node 版本为 v5.4.1。文件目录如下:

-- page
    -- index.html
    -- xx.es6

-- fis-conf.js

-- node_modules

xx.es6 内容如下:

// 法1:
let react = require('react');

// 法2:
//import react from 'react';

fis-conf.js 配置如下:

fis.set('project.fileType.text', 'ts,es,es6');

fis.match('**.es6', {
    parser: fis.plugin('es6-babel'),
    rExt: '.js'
});

fis.match('{**.es6,**.js}', {
    isMod: true
});

fis.hook('amd',  {
    globalAsyncAsSync: false,

    forwardDeclaration: true,

    extList: ['.es6', '.js', '.jsx', '.es', '.ts', '.tsx']
});

fis.match('::packager', {
    postpackager: fis.plugin('loader', {
        resourceType: 'amd',
        useInlineMap: true
    })
});
fis.unhook('components');
fis.hook('node_modules');
//fis.hook('npm');

使用 fis3-hook-node_modules 编译时,提示

Can't resolve react in file [/page/xx.es6], did you miss npm install react?

但事实上,是已经有安装过的,然后用 fis3-hook-npm 可以编译成功。

2betop commented 8 years ago

你的 node_modules 目录里面的包不是 link 方式的吧。

ystarlongzi commented 8 years ago

link 方式是什么意思?

2betop commented 8 years ago

ls -lh node_modules 看看。 比如这种

ls -lh node_modules                                                                                                                                                                                                                                         [11:25:35]
total 40
lrwxr-xr-x  1 ...  staff    39B May 16 17:19 classnames -> .npminstall/classnames/2.2.5/classnames
lrwxr-xr-x  1 ...  staff    30B May 16 17:19 react -> .npminstall/react/0.14.8/react
lrwxr-xr-x  1 ...  staff    38B May 16 17:19 react-dom -> .npminstall/react-dom/0.14.8/react-dom
lrwxr-xr-x  1 ...  staff    41B May 16 17:19 react-redux -> .npminstall/react-redux/4.4.5/react-redux
lrwxr-xr-x  1 ...  staff    29B May 16 17:19 redux -> .npminstall/redux/3.5.2/redux
ystarlongzi commented 8 years ago

运行后如下:

$ ls -lh node_modules
total 0
drwxr-xr-x   10 zhangzilong  staff   340B  5  3 17:02 abbrev
drwxr-xr-x   14 zhangzilong  staff   476B  5  3 17:02 acorn
drwxr-xr-x    5 zhangzilong  staff   170B  5 16 22:26 add-dom-event-listener
2betop commented 8 years ago

那么问题来了,你的 react 在哪?

ystarlongzi commented 8 years ago

就在 node_modules 下的,文件太多了,我只截取了前几个

drwxr-xr-x    9 zhangzilong  staff   306B  5 16 22:24 react
drwxr-xr-x    9 zhangzilong  staff   306B  5 17 10:53 react-dom
drwxr-xr-x   10 zhangzilong  staff   340B  5 16 22:24 react-redux
drwxr-xr-x   11 zhangzilong  staff   374B  5 16 22:26 react-responsive-mixin
drwxr-xr-x   14 zhangzilong  staff   476B  5 16 22:24 react-router
drwxr-xr-x    9 zhangzilong  staff   306B  5 16 22:24 react-router-redux
drwxr-xr-x   15 zhangzilong  staff   510B  5 16 22:26 react-slick
2betop commented 8 years ago

要不你搞个仓库把代码放上去吧?我来看下原因。

ystarlongzi commented 8 years ago

好的,稍等下。。

ystarlongzi commented 8 years ago

当我把 fis-conf.jspackage.json 拷贝到新的文件夹里,然后重新 npm install & fis3 release 没法重现,然后我又把之前项目里的 node_modules 删除掉,然后再次 npm install & fis3 release 也无法重现了了了了。。。

还是谢谢你!