为Webpack设置文件的基本路径

3
当使用 requirejs 时,我会这样做:
require.config({
    baseUrl: "scripts"
});
console.log("Starting!");
require(["A", "B", "C"], mainFunction);

我在谷歌上搜索了如何设置Webpack的基础路径。我发现了resolve.root。 然而,它并没有起作用:
$ node run_with_node.js
D:\node_modules\webpack\lib\webpack.js:19
                throw new WebpackOptionsValidationError(webpackOptionsValidationErrors);
                ^

WebpackOptionsValidationError: Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
 - configuration.resolve has an unknown property 'root'. These properties are valid:
   object { alias?, aliasFields?, cachePredicate?, descriptionFiles?, enforceExtension?, enforceModuleExtension?, extensions?, fileSystem?, mainFields?, mainFiles?, moduleExtensions?, modules?, plugins?, resolver?, symlinks?, unsafeCache?, useSyncFileSystemCalls? }
    at webpack (D:\node_modules\webpack\lib\webpack.js:19:9)
    at Object.<anonymous> (D:\web\voxnap\run_with_node.js:9:18)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.runMain (module.js:605:10)
    at run (bootstrap_node.js:425:7)
    at startup (bootstrap_node.js:146:9)

我也尝试使用resolve.modules,但是这样做的话,Webpack就无法找到来自babeljs的内部模块。

Error: Cannot find module "babel-runtime/helpers/typeof"

那么如何正确添加一个包含我的脚本的目录?

1个回答

4
你已经查看了 webpack 1 的文档。Webpack 2 取消了 resolve.root 并将其整合到 resolve.modules 中,如官方 webpack 2+ 文档的迁移指南所示。 resolve.modules 的默认值为 ["node_modules"] ,如果想保持常规模块解析,则必须将其包含在内。
resolve: {
  modules: [
    path.resolve(__dirname, "scripts"),
    "node_modules"
  ]
}

谢谢。不过我还有一个跟进的问题:Webpack似乎加载0.js而不是我的库。https://dev59.com/JFcO5IYBdhLWcg3wsTnM - Tomáš Zato
@Michael,你能为Webpack 5提供这个解决方案吗? - Md. A. Apu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接