简体   繁体   English

Browserify和jQuery DataTables扩展

[英]Browserify and jQuery DataTables Extensions

i have this browserify shim config: 我有这个browserify垫片配置:

  "browser": {
    "jquery": "./node_modules/jquery/dist/jquery.js",
    "bootstrap": "./node_modules/bootstrap/dist/js/bootstrap.js",
    "datatables": "./node_modules/datatables/media/js/jquery.dataTables.js",
    "dt-bootstrap": "./source/vendors/js/dataTables.bootstrap.js",
    "dt-select": "./source/vendors/js/dataTables.select.js"
   },
  "browserify": {
    "transform": [
      "browserify-shim"
    ]
  },
  "browserify-shim": {
    "jquery": "$",
    "bootstrap": {
      "depends": [
        "jquery:jQuery"
      ]
     },
    "datatables": {
      "exports": "DataTable",
      "depends": [
        "jquery:$"
      ]
     },
    "dt-bootstrap": {
      "depends": ["jquery:$", "datatables:DataTable"]
    },
    "dt-select": {
      "depends": ["jquery:jquery", "datatables:DataTable"]
    }
  },

And when i try to: 当我尝试:

import dtBootstrap from 'dt-bootstrap'

After browserify it gives error in to browser that: 在browserify之后,它给浏览器带来了以下错误:

Uncaught Error: Cannot find module 'jquery'

This error will be only when i try to: 仅当我尝试执行以下操作时,此错误才会出现:

import $ from 'jquery'
import bootstrap from 'bootstrap'
import DataTable from 'datatables'

// Include any of this modules gives error.
import dtBootstrap from 'dt-bootstrap'
import dtSelect from 'dt-select'

When i don't use them and use only this, all will be ok: 当我不使用它们并且仅使用它时,一切都会好的:

import $ from 'jquery'
import bootstrap from 'bootstrap'
import DataTable from 'datatables'

// No include no error.
//import dtBootstrap from 'dt-bootstrap'
//import dtSelect from 'dt-select'

They using factory pattern from DataTables lib. 他们使用DataTables库中的工厂模式。

Any one have ideas what i doing wrong? 有人知道我做错了什么吗? I try many configurations for including DataTables Extensions dependencies. 我尝试了许多配置,以包括DataTables Extensions依赖项。

I have generated from datatables site external datatables.js file and include it in to vendor. 我已经从datatables网站外部datatables.js文件生成了文件,并将其包含在供应商中。 Then use it in my browserify-shim configuration. 然后在我的browserify-shim配置中使用它。 And all work! 和所有的工作!

  "browser": {
    "jquery": "./node_modules/jquery/dist/jquery.js",
    "bootstrap": "./node_modules/bootstrap/dist/js/bootstrap.js",
    "datatables": "./source/vendors/js/datatables.js"
  },
  "browserify": {
    "transform": [
      "browserify-shim"
    ]
  },
 "browserify-shim": {
   "jquery": "$",
   "bootstrap": {
     "depends": [
     "jquery:jQuery"
   ]
  },
 "datatables": {
   "exports": "DataTable",
   "depends": [
     "jquery:$"
   ]
 }
},

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM