我有一个反应应用程序,我想从第三方库导入一个 javascript 文件,但文件用 shebang 标记#!/usr/bin/env node
。
我发现(例如,这里How to Configure Webpack with Shebang Loader to Ignore Hashbang Importing Cesium React Component into Typescript React Component)我可以通过覆盖 webpack 配置并添加新的加载器 shebang-loader 来加载文件(我也尝试过 shebang-loader2)但是仅建议使用 @craco/craco 在 react 应用程序中覆盖 webpack,因此我将其添加到 package.json 并尝试将加载程序添加到现有的 webpack-config.js。
我制作了这行代码。文件 craco.config.js:
const throwError = (message) =>
throwUnexpectedConfigError({
packageName: 'craco',
githubRepo: 'gsoft-inc/craco',
message,
githubIssueQuery: 'webpack',
});
module.exports = {
webpack: {
configure: (webpackConfig, {paths}) => {
const shebangLoader = { test: /node_modules\/npm-groovy-lint\/lib\/groovy-lint.js$/, loader: "shebang-loader" }
const {isAdded: shebangLoaderIsAdded1} = addAfterLoader(webpackConfig, loaderByName('url-loader'), shebangLoader);
if (!shebangLoaderIsAdded1) throwError('failed to add shebang-loader');
return webpackConfig;
},
},
};
它解决了shebang的问题并且它忽略了#!/usr/bin/env node
但现在我仍然收到错误
Module parse failed: Unexpected token (14:16)
File was processed with these loaders:
* ./node_modules/shebang2-loader/index.js
You may need an additional loader to handle the result of these loaders.
| const { getSourceLines, isErrorInLogLevelScope } = require("./utils");
| class NpmGroovyLint {
> "use strict";
| options = {}; // NpmGroovyLint options
| args = []; // Command line arguments
看起来它不识别“使用严格”行。谁能提出一些建议应该是什么问题?