【问题标题】:Require Modernizr with Webpack需要带 Webpack 的 Modernizr
【发布时间】:2014-12-10 15:27:43
【问题描述】:

尝试在 grunt 中使用 WebPack 来构建我所有的 javascript、css 和其他内容并将其放置在适当的位置。在我的 Gruntfile.js 的模块之一中包含的我的 javascript 文件之一中使用 require('modernizer') 时遇到以下问题。错误如下:

Fatal error: EMFILE, too many open files ../about/node_modules/modernizr/node_modules/file/lib/file.js'

当我使用ulimit 增加要处理的文件数量时,会出现其他错误。在我的 package.json 中,我有以下内容:

"dependencies": {
"jquery": "^2.1.1",
"jquery-ui": "^1.10.5",
"modernizr": "^2.8.3"    

}

有没有办法使用包中的 Modernizer 来包含它的模块,而无需在页面上使用此指令:

 <script type="text/javascript" src="{portal:createUrl('/_public/about/js/modernizr/modernizr.custom.flexbox.js')}"></script>

?

提前致谢!

【问题讨论】:

    标签: javascript gruntjs modernizr webpack


    【解决方案1】:

    首先,只是标记您应该调用require('modernizr') 而不是require('modernizer')。

    其次,回答您的问题“有没有办法使用包中的 Modernizer 来包含它的模块,而无需在页面上使用此指令?

    是的,有。这是script-loader。它基本上允许您需要一个库,并像在 &lt;script&gt; 标记内一样执行它。你可以通过调用来使用它:

    2017 年 12 月 27 日更新

    require('script-loader');
    require('script-loader!modernizr');
    

    以前

    require('script-loader');
    require('script!modernizr');
    

    记得提前安装script-loader,在命令行中调用npm install script-loader --save。

    【讨论】:

    • 运行script-loader 我得到Unexpected token 用于!,如果我将script!modernizr 放在'' 之间,它找不到模块'script!modernizr'。是的,我做了npm install script-loader。根据the package doc,它必须与''。还没弄清楚,到底是哪个文件script!。
    • @Giszmo 我注意到我之前的评论中有一个错字。它应该是 'script!modernizr' 而不是 script!modernizr。 (引号丢失)
    • 现在好像是:require('script-loader'); require('script-loader!modernizr');
    猜你喜欢
    • 2021-09-20
    • 2019-05-07
    • 1970-01-01
    • 2014-06-15
    • 2017-07-30
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 2020-03-21
    相关资源
    最近更新 更多