我正在使用Google屏蔽软件包(https://www.npmjs.com/package/blockly)。当我在开发模式下安装并在本地运行它时(npm run dev-> next),一切正常。但是,当我尝试使用下一个版本来构建项目时,它也会尝试安装jsdom包,而这又具有一个依赖关系,即canvas包。对于块式用例,我不需要这两个软件包中的任何一个(因为它可以在开发模式下运行而无需安装它们中的任何一个),但是我无法阻止在构建jsdom软件包时对其进行安装。
我如何防止next与其他软件包一起构建jsdom tgt?以下是我尝试构建项目时遇到的错误。
Module not found: Can't resolve 'canvas' in '.../node_modules/blockly/node_modules/jsdom/lib/jsdom'
这是next.config.js文件
const withPlugins = require('next-compose-plugins');
const css = require('@zeit/next-css');
const nextConfig = {
target: 'serverless',
webpack(config) {
config.module.rules.push({
test: /\.(png|svg|jpg|eot|otf|ttf|woff|woff2|mp3)$/,
use: {
loader: 'url-loader',
options: {
limit: 8192,
publicPath: '/_next/static/',
outputPath: 'static/',
name: '[name].[ext]',
},
},
});
return config;
},
};
module.exports = withPlugins([[css]], nextConfig);
非常感谢您的帮助。