基于webpack.config.js和babel.config.js及package.json构建项目的demo


webpack.config.js的内容如下const HtmlWebpackPlugin = require('html-webpack-plugin');const Webpack = require("webpack");const ConcatPlugin = require('webpack-concat-plugin');

const CopyPlugin = require('copy-webpack-plugin'); const Path = require('path'); const ImageInlineSizeLimit = 10000; module.exports = (env, argv) => { const isDev = 'development' === argv['mode']; return { entry: { init_global: './src/global.js', app: './src/app.js' }, module: { rules: [{ test: [/\.js$/, /\.jsx$/], exclude: /node_modules/, loader: 'babel-loader' }, { test: /\.css|scss$/, //*.global.css->不开启css-loader modules loader: 'style-loader!css-loader!sass-loader' }, /*{ test: /^(?!.*\.global).*\.css/, //*.global.css->不开启css-loader modules loader: 'style-loader!css-loader?modules' }, { test: /^(.*\.global).*\.css/, //*.css->开启css-loader modules loader: 'style-loader!css-loader' },*/ { test: /\.xml$/, loader: 'raw-loader' }, { test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/], loader: 'url-loader', options: { limit: ImageInlineSizeLimit, name: 'static/media/[name].[hash:8].[ext]', }, } ] }, resolve: { extensions: ['.js', '.jsx', '.css'], }, devServer: { contentBase: Path.join(__dirname, 'public'),
publicPath: "/design-studio/"
     },
 devtool: "eval-source-map", plugins: [new HtmlWebpackPlugin({ filename: 'index.html', //按顺序引入 inject: false, template: 'src/assets/index.html' }), new ConcatPlugin({ uglify: !isDev, sourceMap: false, injectType: "none", name: 'editor', fileName: '[name].[hash:8].js', filesToConcat: [ 'mxgraph/javascript/mxClient.js', Path.resolve(__dirname, 'src/thirdparty/editor/sanitizer/sanitizer.min.js'), Path.resolve(__dirname, 'src/thirdparty/editor/js/Editor.js'), Path.resolve(__dirname, 'src/thirdparty/editor/js/EditorUi.js'), Path.resolve(__dirname, 'src/thirdparty/editor/js/Graph.js'), Path.resolve(__dirname, 'src/thirdparty/editor/js/Actions.js'), Path.resolve(__dirname, 'src/thirdparty/editor/js/Dialogs.js'), Path.resolve(__dirname, 'src/thirdparty/editor/js/Format.js'), Path.resolve(__dirname, 'src/thirdparty/editor/js/Menus.js'), Path.resolve(__dirname, 'src/thirdparty/editor/js/Shapes.js'), Path.resolve(__dirname, 'src/thirdparty/editor/js/Sidebar.js'), Path.resolve(__dirname, 'src/thirdparty/editor/js/Toolbar.js'), ] }), new CopyPlugin([{ from: Path.resolve(__dirname, 'public/static'), to: "static", toType: 'dir', }])] } };

 

babel.config.js的内容如下:

module.exports = {
    presets: [
        ['@babel/preset-env', {
            targets: {
                node: 'current',
            },
        }],
        '@babel/preset-react'
    ],
    plugins: [
        "@babel/plugin-proposal-class-properties"
    ]
};

 

package.json的依赖如下:

{
    "name": "design-studio",
    "version": "1.0.0",
    "scripts": {
        "start": "webpack-dev-server --mode development",
        "build": "webpack --mode production"
    },
    "devDependencies": {
        "@babel/cli": "7.6.0",
        "@babel/core": "7.6.0",
        "@babel/plugin-proposal-class-properties": "7.5.5",
        "@babel/preset-env": "7.6.0",
        "@babel/preset-react": "7.0.0",
        "babel-core": "6.26.3",
        "babel-loader": "8.0.6",
        "babel-plugin-transform-runtime": "6.23.0",
        "babel-preset-env": "1.7.0",
        "babel-preset-react": "6.24.1",
        "babel-preset-stage-0": "6.24.1",
        "copy-webpack-plugin": "5.0.4",
        "css-loader": "3.2.0",
        "file-loader": "4.2.0",
        "html-webpack-plugin": "3.2.0",
        "raw-loader": "3.1.0",
        "sass-loader": "8.0.0",
        "style-loader": "1.0.0",
        "url-loader": "2.1.0",
        "webpack": "4.40.2",
        "webpack-cli": "3.3.9",
        "webpack-concat-plugin": "3.0.0",
        "webpack-dev-server": "3.8.1",
        "node-sass": "^4.13.0"
    },
    "dependencies": {
        "axios": "0.19.0",
        "bootstrap": "4.3.1",
        "mxgraph": "4.0.4",
        "react": "16.10.1",
        "react-dom": "16.10.1",
        "react-jsonschema-form": "1.8.0"
    }
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM