我在将我编写(并发布到npm)的javascript包导入新项目时遇到了麻烦。
我创建了一个ES6软件包,并使用将其捆绑了webpack
。在包中,我可以使用脚本标签使用捆绑的文件导入库,
<script src='../dist/awesome-table-dist.js'></script>
然后像这样重新上课:
let awesomeTable = new AwesomeTable.AwesomeTable('record');
奇迹般有效!很棒的桌子
我将程序包推送到npm,现在我想将其引入新项目中,如下所示:
import AwesomeTable from '@iannazzi/awesome-table'
然后
let awesomeTable = new AwesomeTable('record');
这是错误的: TypeError: _iannazzi_awesome_table__WEBPACK_IMPORTED_MODULE_0___default.a is not a constructor
现在,我将其导入到一个新项目中,我尝试了各种新方法,但似乎完全陷入了困境。
我可以通过再次包含脚本来使用该程序包,但是显然我想导入以便重新打包: <script src='node_modules/@iannazzi/awesome-table/dist/awesome-table-dist.js'></script>
这是软件包的webpack配置:
var path = require('path');
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const SRC_DIR = path.resolve(__dirname,'../src');
const DIST_DIR = path.resolve(__dirname, '../dist');
module.exports = {
entry: {
app: SRC_DIR + '/table/AwesomeTable.js'
},
output: {
path: DIST_DIR,
filename: 'awesome-table-dist.js',
library: 'AwesomeTable',
// libraryTarget: 'window'
},
module: {
rules: [
{
test: /\.scss$/,
use: ["style-loader", "css-loader", "sass-loader"],
},
],
},
plugins: [
new ExtractTextPlugin('style.css')
//if you want to pass in options, you can do so:
//new ExtractTextPlugin({
// filename: 'style.css'
//})
]
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句