gpt4 book ai didi

javascript - extract-text-webpack-plugin 删除所有 .js 代码

转载 作者:行者123 更新时间:2023-12-01 17:50:51 25 4
gpt4 key购买 nike

TL;DR:当生成两个 .js 和一个 .css block 时,插件会从其中一个 .js block 中删除所有 .js 代码。

即使我只使用 webpack 文档中的示例,这也是可重复的行为。

我可能遗漏了一些东西,但我找不到它是什么:)

配置如下:

var path = require('path');
var webpack = require('webpack');
var ExtractTextPlugin = require("extract-text-webpack-plugin");
var glob = require("glob");

module.exports = {
entry: {
app: [
'./.build/app/app_dependencys.js',
'./.build/app/_helpers/api_helpers.js',
'./.build/app/event-manager.js',
'./.build/app/route_handlers/Router.js'
],
lib: [
'c3',
'lodash',
'moment',
'moment-timezone',
'pleasejs',
'react-bootstrap-datetimepicker',
'react',
'react-bootstrap',
'react-d3-components',
'react-datepicker-component',
'react-googlemaps',
'react-router',
'react-slider',
'reactable',
'select2'
],
css: glob.sync('./css/css/*.styl')
},
output: {
path: path.join(__dirname, 'js/dist'),
filename: "app.js",
chunkFilename: "[name].js"
},
module: {
loaders: [
{test: /\.jsx?$/, loader: 'babel?compact=false', ignore: /node_modules/},
{test: /\.json$/, loader: "json"},
{
test: /\.styl$/,
loader: ExtractTextPlugin.extract('raw', 'raw!stylus')
}
]
},
plugins: [
new ExtractTextPlugin('id', "./../../css/compiled/css.css", {allChunks: false}),
new webpack.optimize.CommonsChunkPlugin(/* chunkName= */"lib", /* filename= */"lib.js", Infinity)
],
externals: ['jquery'],
bail: true
};

当运行 webpack 时,这是输出:

Time: 51884ms
Asset Size Chunks Chunk Names
app.js 3.8 kB 0, 1 [emitted] app, css
lib.js 3.47 MB 2 [emitted] lib
./../../css/compiled/css.css 131 kB 1 [emitted] css
[0] multi app 64 bytes {0} [built]
[0] multi css 364 bytes {1} [built]
[0] multi lib 196 bytes {2} [built]
+ 634 hidden modules
Child extract-text-webpack-plugin:
+ 1 hidden modules
Child extract-text-webpack-plugin:
+ 1 hidden modules
Child extract-text-webpack-plugin:
+ 1 hidden modules

.... it goes on for a while ...

结果:

  • css.css 包含所有需要的 css
  • lib.js 根据需要包含所有 lib 代码
  • app.js:app.js 中的每个条目都替换为

    /***/ 581:
    /***/ function(module, exports) {

    // removed by extract-text-webpack-plugin

    /***/ },

    /***/ 582:
    /***/ function(module, exports) {

    // removed by extract-text-webpack-plugin

    /***/ },
    ...

同时向插件作者报告:https://github.com/webpack/extract-text-webpack-plugin/issues/118

最佳答案

在这里回答: https://github.com/webpack-contrib/extract-text-webpack-plugin/issues/118

Okay, what worked for me is: good: entry: { js: './js/app.js', css: './scss/main.scss' }, bad: entry: { js: './js/app.js', scss: './scss/main.scss' } the only difference - css key instead of scss. And also entry: [ './js/main.js', './scss/main.scss' ], works too.

关于javascript - extract-text-webpack-plugin 删除所有 .js 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33165458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com