Webpack Encore:无法导入本地依赖项
Webpack Encore: cannot import local dependencies
我想为一个 JS 文件添加一个条目,该文件又会导入其他几个 JS 文件。
然而,当我 运行 再来一次时,我得到一个 "This dependency was not found" 错误。
webpack.config.js
...
.addEntry('app', './theme/js/scripts.js')
...
./theme/js/scripts.js
import * as Site from 'Site'
$(() => {
Site.run()
})
./theme/es/Site.js
import $ from 'jquery';
import Base from 'Base';
import Menubar from 'Menubar';
import Sidebar from 'Sidebar';
import PageAside from 'PageAside';
... more code
我收到的错误是
This dependency was not found:
- Site in ./theme/js/scripts.js
To install it, you can run: npm install --save Site
我不认为它可以 "installed" 因为这是一个依赖项,它是我拥有的主题的一部分。
不幸的是,我无法更改 ./theme 中任何文件中的代码
所以我想知道有没有办法在Webpack Encore中加载依赖?
在传统的 webpack 配置中,我会执行以下操作:
module.exports = {
resolve: {
extensions: ['.js'],
alias: {
Base: path.resolve(config.scripts.source, 'Base.js'),
Site: path.resolve(config.scripts.source, 'Site.js'),
....
}
},
但是我如何使用 Webpack Encore 导入这些?
目前 webpack encore 似乎没有提供任何添加辅助函数的语法。
根据此处 https://github.com/symfony/webpack-encore/issues/37 的评论,解决方案如下:
webpack.config.js
let config = Encore.getWebpackConfig();
config.resolve = {
extensions: ['.js'],
alias: {
Base: path.resolve(__dirname, './remark/es/Base.js'),
Site: path.resolve(__dirname, './remark/es/Site.js'),
...
}
};
// export the final configuration
module.exports = config;
在 ES6 中你可以使用模块。
解决方案是利用 ES6 的语法、导入和导出语句,这是一种优雅且可维护的方法,使我们能够将事物分开,并且仅在我们需要时才可用。
我想为一个 JS 文件添加一个条目,该文件又会导入其他几个 JS 文件。
然而,当我 运行 再来一次时,我得到一个 "This dependency was not found" 错误。
webpack.config.js
...
.addEntry('app', './theme/js/scripts.js')
...
./theme/js/scripts.js
import * as Site from 'Site'
$(() => {
Site.run()
})
./theme/es/Site.js
import $ from 'jquery';
import Base from 'Base';
import Menubar from 'Menubar';
import Sidebar from 'Sidebar';
import PageAside from 'PageAside';
... more code
我收到的错误是
This dependency was not found:
- Site in ./theme/js/scripts.js
To install it, you can run: npm install --save Site
我不认为它可以 "installed" 因为这是一个依赖项,它是我拥有的主题的一部分。
不幸的是,我无法更改 ./theme 中任何文件中的代码 所以我想知道有没有办法在Webpack Encore中加载依赖?
在传统的 webpack 配置中,我会执行以下操作:
module.exports = {
resolve: {
extensions: ['.js'],
alias: {
Base: path.resolve(config.scripts.source, 'Base.js'),
Site: path.resolve(config.scripts.source, 'Site.js'),
....
}
},
但是我如何使用 Webpack Encore 导入这些?
目前 webpack encore 似乎没有提供任何添加辅助函数的语法。
根据此处 https://github.com/symfony/webpack-encore/issues/37 的评论,解决方案如下:
webpack.config.js
let config = Encore.getWebpackConfig();
config.resolve = {
extensions: ['.js'],
alias: {
Base: path.resolve(__dirname, './remark/es/Base.js'),
Site: path.resolve(__dirname, './remark/es/Site.js'),
...
}
};
// export the final configuration
module.exports = config;
在 ES6 中你可以使用模块。 解决方案是利用 ES6 的语法、导入和导出语句,这是一种优雅且可维护的方法,使我们能够将事物分开,并且仅在我们需要时才可用。