Webpack 如何告诉网页包不要通过摇动树来读取(排除)无法访问的文件?
似乎Webpack的摇树功能有助于从包中删除未使用的代码。但是,Webpack确实读取了这些不可读的文件。我如何告诉Webpack不要阅读它们 以下是一个例子: index.jsWebpack 如何告诉网页包不要通过摇动树来读取(排除)无法访问的文件?,webpack,tree-shaking,Webpack,Tree Shaking,似乎Webpack的摇树功能有助于从包中删除未使用的代码。但是,Webpack确实读取了这些不可读的文件。我如何告诉Webpack不要阅读它们 以下是一个例子: index.js import { bar } from './bar'; bar(); bar/index.js export { bar } from './bar'; export { foo } from './foo'; bar/foo.js import fs from 'fs'; export function f
import { bar } from './bar';
bar();
bar/index.js
export { bar } from './bar';
export { foo } from './foo';
bar/foo.js
import fs from 'fs';
export function foo() {}
webpack.config.js
const path = require('path');
module.exports = {
entry: './src/index.js',
mode: 'production',
module: {
rules: [
{ sideEffects: false }
],
},
optimization: {
usedExports: true
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
}
};
运行Webpack会导致以下错误:
在./src/bar/foo.js模块中找不到错误:错误:无法解析“/temp/webpack test/src/bar”中的“fs”
我希望Webpack不会读取foo.js文件,因为没有从入口点到该文件的路由。这与预期一样有效 有一条路线:
Error: Can't resolve 'fs' in "/temp/webpack-test/src/bar'
因为fs
在网页包默认target:web
配置中不可用。
您可以通过以下方式绕过它:
node: {
fs: "empty"
},
但是有些事情可能不起作用。这就像预期的那样起作用 有一条路线:
Error: Can't resolve 'fs' in "/temp/webpack-test/src/bar'
因为fs
在网页包默认target:web
配置中不可用。
您可以通过以下方式绕过它:
node: {
fs: "empty"
},
但是有些事情可能不起作用。谢谢Raz。我不担心这个错误。这只是为了证明Webpack解析了
src/bar/foo.js
文件的事实。因为foo
没有导出到主src/index.js
文件中,我希望这个文件被忽略。树抖动是一种优化,所以它可以工作er模块被解析为一个构建的模块。很有趣听到社区关于webpack是否应该/不应该解析这些文件的想法。也许在未来的版本中它不会感谢Raz。我不担心这个错误。这只是为了证明webpack解析了src/bar/foo.js
文件的事实。因为foo
没有在中导出对于主src/index.js
文件,我希望该文件被忽略。树抖动是一种优化,因此它在模块解析和构建后工作。有趣的是听到社区关于webpack是否应该/不应该解析这些文件的想法。也许在未来的版本中它不会
node: {
fs: "empty"
},