Javascript 如何使用网页2从木偶3应用程序中排除未使用的lodash部分
我有一个具有下一个依赖项的虚拟应用程序Javascript 如何使用网页2从木偶3应用程序中排除未使用的lodash部分,javascript,webpack,babeljs,marionette,lodash,Javascript,Webpack,Babeljs,Marionette,Lodash,我有一个具有下一个依赖项的虚拟应用程序 "dependencies": { "backbone": "^1.3.3", "backbone.marionette": "^3.1.0", "jquery": "^3.1.1", "lodash": "^4.17.4" }, "devDependencies": { "babel-core": "^6.22.1", "babel-loader": "^6.2.10", "babel-preset-env": "^1.1.8
"dependencies": {
"backbone": "^1.3.3",
"backbone.marionette": "^3.1.0",
"jquery": "^3.1.1",
"lodash": "^4.17.4"
},
"devDependencies": {
"babel-core": "^6.22.1",
"babel-loader": "^6.2.10",
"babel-preset-env": "^1.1.8",
"webpack": "^2.2"
}
还有一个webpack.config.js
{
entry: {
app: './empty-file.js',
vendor: ['backbone.marionette']
},
module: {
rules: [
{
test: /\.(js)$/,
use: 'babel-loader'
}
]
},
resolve: {
extensions: ['.js'],
alias: {
underscore: 'lodash'
}
},
plugins: [
new webpack.optimize.CommonsChunkPlugin('vendor')
],
当我运行webpack时,我会将整个lodash库打包。它是巨大的,比其他所有东西加起来都要大。据我所知,是提线木偶从“lodash”制作了类似于导入的东西。有没有办法去除不需要的lodash部分 您可以使用删除不需要的零件
之前
从“lodash”导入;
从'lodash/fp'导入{add};
const addOne=add(1);
_.map([1,2,3],addOne);
之后
import_从'lodash/fp/add'添加;
从“lodash/map”导入地图;
const addOne=_add(1);
_地图([1,2,3],addOne);
您可以使用删除不需要的零件
之前
从“lodash”导入;
从'lodash/fp'导入{add};
const addOne=add(1);
_.map([1,2,3],addOne);
之后
import_从'lodash/fp/add'添加;
从“lodash/map”导入地图;
const addOne=_add(1);
_地图([1,2,3],addOne);
感谢您的建议,在大多数情况下,这是一个不错的选择。不幸的是,插件的一个要求是“您必须使用ES2015导入来加载Lodash”,但据我所知,木偶使用commonjsrequire
导入下划线/Lodash,源代码使用ES2015导入:文档中的代码可能不是最新的。嗯,很有趣!他们将编译后的文件作为“main”提供,并将src文件夹从带有.npmignore
文件的包中排除。即使我将github url声明为dependency,npm也会在不使用src的情况下下载它。感谢您的建议,在大多数情况下,它看起来是一个不错的选择。不幸的是,插件的一个要求是“您必须使用ES2015导入来加载Lodash”,但据我所知,木偶使用commonjsrequire
导入下划线/Lodash,源代码使用ES2015导入:文档中的代码可能不是最新的。嗯,很有趣!他们将编译后的文件作为“main”提供,并将src文件夹从带有.npmignore
文件的包中排除。即使我将github url声明为依赖项,npm也会在不使用src的情况下下载它。