与Webpack捆绑在一起时出现“不能间接使用定义”错误

时间:2019-05-09 13:01:26

标签: webpack requirejs amd

当我尝试捆绑使用AMD编写的代码时,一旦使用button函数,就会出现错误StringVar()。我该如何解决?由于整个项目都是使用RequireJS AMD编写的,因此不能将textvariable更改为button

这是我的Webpack配置:

Uncaught Error: define cannot be used indirect

我的输入文件:

define()

这是它给我的输出:

define()

但是,入口文件是由RequireJS配置文件导入的:

import

编辑

完整错误:

const path = require("path");

module.exports = {
    entry: {
        app: './app/js/app/main.js'
    },
    output: {
        path: path.resolve(__dirname, 'app/build'),
        filename: 'main.js'
    },
    module: {
        rules: [{
            test: /\.js?$/,
            exclude: /node_modules/,
            loader: 'babel-loader',
            query: {
                presets: ['@babel/env']
            }
        }]
    }
};

1 个答案:

答案 0 :(得分:1)

似乎您有一些模块依赖性正在以一种奇怪的方式使用define(不要使用标准的umd样板)。

您将必须找到问题的依赖项,然后在该lib的webpack配置中执行以下操作:

module: {
    noParse: /node_modules\/json-schema\/lib\/validate\.js/
}

存在此问题的一些已知模块:set-getterjquery-migrateDexie

webpack github页面上还有很多问题:
https://github.com/webpack/webpack/issues/138
https://github.com/webpack/webpack/issues/2958
https://github.com/doowb/set-getter/issues/1