如何使用 npm/webpack 正确导入 Gridstack?

How to correctly import Gridstack using npm/webpack?

我使用 npm 安装了 gridstack 库。

我以前使用 gridstack 作为标准 js 库,但我现在想使用 npm/webpack 包含它,而不是自己直接包含它。 我不明白我需要包含什么才能使其正常工作。

我也在用v1.1版本,需要什么依赖?只有 gridstack 或者你还需要 jquery-ui ?

Main.js

import Gridstack from 'gridstack' //what I need to put here ?

var grid = Gridstack.init();
console.log(grid);

Package.json

"dependencies": {
    "@babel/polyfill": "^7.8.3",
    "@babel/runtime": "^7.8.7",
    "gridstack": "^1.1.0",
 },
"devDependencies": {
    "@babel/core": "^7.8.4",
    "@babel/plugin-syntax-dynamic-import": "^7.8.3",
    "@babel/plugin-transform-runtime": "^7.8.3",
    "@babel/preset-env": "^7.8.4",
    "autoprefixer": "^8.6.4",
    "babel-loader": "^8.0.6",
    "cross-env": "^7.0.0",
    "webpack": "^4.41.6",
    "webpack-cli": "^3.3.11"
  },

目前我有以下错误:

TypeError: gridstack__WEBPACK_IMPORTED_MODULE_7___default.a.init is not a function

我发现对我有用的 hack 是按如下方式导入 gridstack:

import 'gridstack/dist/jquery';
import 'gridstack/dist/gridstack';
import 'gridstack/dist/jquery-ui';
import 'gridstack/dist/gridstack.jQueryUI';

还有一个相关的open issue讨论这个问题

这现在适用于刚刚发布的 1.2.1(请参阅发行说明)

import 'jquery';
import 'jquery-ui';

import 'gridstack/dist/gridstack-poly'; // optional IE support
import GridStack from 'gridstack';
import 'gridstack/dist/gridstack.jQueryUI';
import 'gridstack/dist/gridstack.css';

但建议您只使用 2.x(本机打字稿重写),它只需要这个:

import { GridStack, $ } from 'gridstack'; // $ optional if you depend on it, to be removed in 3.x
import 'gridstack/dist/gridstack.css';

可能还想看看 https://github.com/gridstack/gridstack.js#jquery-application