5

我的项目中有一个包含模块和 webpack.config 的文件夹。

我的 webpack.config:

entry: {

    hmr: [
        'webpack-dev-server/client?http://localhost:8080',
        'webpack/hot/only-dev-server'
        // 'webpack/hot/dev-server'
    ],
    app: PATHS.app + '/desktop.js',
    style: PATHS.style

    },
    output: {
        path: PATHS.build,
        publicPath: '/',
        filename: '[name].js',
        sourceMapFilename: '[file].map',
        devtoolModuleFilenameTemplate: 'webpack:///[resource-path]?[loaders]'
    },

    module: {
        rules: [
            {
                test: /\.(js|jsx)$/,
                exclude: '/node_modules/',
                use: 'eslint-loader',
                enforce: 'pre',
                include: PATHS.app
            },
            {
                test: /\.(js|jsx)$/, 
                exclude: /node_modules/, 
                loader: 'babel-loader',
                options: {
                    presets: ['es2015', 'react' ],
                    cacheDirectory: true 
                }
            },
            {
                test: /\.json$/, 
                loader: "json-loader"
            },
            {
                test: /\.hbs/, 
                loader: "handlebars-template-loader"
            }
        ]
    }, 
    resolve: {
        modules: [
            "node_modules",
            path.resolve(__dirname, "node_modules"),
            path.resolve(__dirname, "../../../../../myModules/"),
        ],
        alias: {
            'react': 'preact-compat',
            'react-dom': 'preact-compat'
        },
        extensions: [".js", ".json", ".jsx", ".css", ".scss", ".hbs"],
    },

我的 package.json:

{
  "name": "ETU_ETU",
  "version": "1.0.0",
  "scripts": {
     "start": "nodemon --watch webpack.config.js --exec \"webpack-dev-server --env development\"",
     "build": "webpack --env production",
     "stats": "webpack --env production --profile --json > stats.json",
    "test:lint": "eslint . --ext .js --ext .jsx || true"
  },
  "devDependencies": {
    "babel-core": "^6.21.0",
    "babel-eslint": "^7.1.1",
    "babel-loader": "^6.2.10",
    "babel-plugin-module-resolver": "^2.4.0",
    "babel-plugin-syntax-dynamic-import": "^6.18.0",
    "babel-preset-es2015": "^6.18.0",
    "babel-preset-react": "^6.16.0",
    "babel-preset-stage-0": "^6.16.0",
    "clean-webpack-plugin": "^0.1.14",
    "compression-webpack-plugin": "^0.3.2",
    "css-loader": "^0.26.1",
    "eslint": "^3.12.2",
    "eslint-loader": "^1.6.1",
    "eslint-plugin-react": "^6.8.0",
    "extract-text-webpack-plugin": "^2.0.0-beta.4",
    "friendly-errors-webpack-plugin": "^1.1.2",
    "handlebars-loader": "^1.4.0",
    "handlebars-template-loader": "^0.7.0",
    "html-loader": "^0.4.4",
    "html-webpack-plugin": "^2.24.1",
    "json-loader": "^0.5.4",
    "node-sass": "^4.1.0",
    "npm-install-webpack-plugin": "^4.0.4",
    "purifycss-webpack-plugin": "^2.0.3",
    "required-loader": "^1.1.11",
    "sass-loader": "^4.1.0",
    "style-loader": "^0.13.1",
    "svg-sprite-loader": "^0.1.2",
    "webpack": "^2.2.0-rc.1",
    "webpack-dev-server": "^2.2.0-rc.0",
    "webpack-merge": "^1.1.2",
    "webpack-notifier": "^1.5.0"
  },
  "dependencies": {
    "domready": "^1.0.8",
    "handlebars": "^4.0.6",
    "lodash": "^4.17.2"
  }
}

在我的模块中,我的 package.json:

{
  "name": "myModule1",
  "version": "2.0.0",
  "description": "",
  "main": "src/index.js",
  "devDependencies": {
    "cz-conventional-changelog": "^1.2.0"
  },
  "config": {
    "commitizen": {
       "path": "./node_modules/cz-conventional-changelog"
    }
  }
}

在我的 desktop.js 中,当我导入 myModule1 时。我有这个错误:模块构建失败:错误:找不到相对于目录“/space/www/myModules/myModule1/src”的预设“es2015”

如果我删除 es2015 预设,我的反应也有同样的问题。

所以,我不明白,因为,我使用resolve.module。

你有解决方案吗?

谢谢,

4

0 回答 0