And*_*ius 12 javascript relative-path npm webpack
我有一个app的结构(node_modulesdir从这个列表中排除):
??? actions.js
??? bundle.js
??? components
? ??? App.js
? ??? Footer.js
? ??? Link.js
? ??? Todo.js
? ??? TodoList.js
??? Containers
? ??? AddTodo.js
? ??? FilterLink.js
? ??? VisibleTodoList.js
??? index.html
??? index.js
??? main.js
??? package.json
??? package-lock.json
??? reducers.js
??? webpack.config.js
Run Code Online (Sandbox Code Playgroud)
我的webpack配置如下所示:
module.exports = {
entry: "./main.js",
output: {
path: __dirname,
filename: "bundle.js"
},
module: {
loaders: [
{
test: /\.js$/,
loader: 'babel-loader',
query: {
presets: ['es2015', 'react']
}
}
]
}
};
Run Code Online (Sandbox Code Playgroud)
npm config:
{
"name": "webpack-redux",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"test": "nothing"
},
"author": "",
"license": "ISC",
"devDependencies": {
"babel": "^6.23.0",
"babel-core": "^6.26.0",
"babel-loader": "^7.1.2",
"babel-preset-env": "^1.6.0",
"babel-preset-es2015": "^6.24.1",
"webpack": "^3.5.5"
},
"dependencies": {
"react": "^15.6.1",
"babel-preset-react": "^6.24.1",
"react-dom": "^15.6.1",
"react-redux": "^5.0.6",
"redux": "^3.7.2"
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行webpack命令时,我收到此错误:
ERROR in ./components/App.js
Module not found: Error: Can't resolve '../containers/AddTodo' in '/home/oerp/js-programs/redux-test/components'
@ ./components/App.js 11:15-47
@ ./index.js
@ ./main.js
ERROR in ./components/Footer.js
Module not found: Error: Can't resolve '../containers/FilterLink' in '/home/oerp/js-programs/redux-test/components'
@ ./components/Footer.js 11:18-53
@ ./components/App.js
@ ./index.js
@ ./main.js
ERROR in ./components/App.js
Module not found: Error: Can't resolve '../containers/VisibleTodoList' in '/home/oerp/js-programs/redux-test/components'
@ ./components/App.js 15:23-63
@ ./index.js
@ ./main.js
Run Code Online (Sandbox Code Playgroud)
我的components/App.js内容是这样的:
import Footer from './Footer'
import AddTodo from '../containers/AddTodo'
import VisibleTodoList from '../containers/VisibleTodoList'
const App = () => (
<div>
<AddTodo />
<VisibleTodoList />
<Footer />
</div>
)
export default App
Run Code Online (Sandbox Code Playgroud)
例如containers/AddTodo.js:
import { connect } from 'react-redux'
import { addTodo } from '../actions'
let AddTodo = ({ dispatch }) => {
let input
return (
<div>
<form
onSubmit={e => {
e.preventDefault()
if (!input.value.trim()) {
return
}
dispatch(addTodo(input.value))
input.value = ''
}}
>
<input
ref={node => {
input = node
}}
/>
<button type="submit">
Add Todo
</button>
</form>
</div>
)
}
AddTodo = connect()(AddTodo)
export default AddTodo
Run Code Online (Sandbox Code Playgroud)
它似乎不理解双点的相对路径,如../something?
我是否需要以webpack某种方式配置才能理解这些路径?
小智 10
导入库时使用文件的确切路径,包括相对于当前文件的目录,例如:
import Footer from './Footer/index.jsx'
import AddTodo from '../containers/AddTodo/index.jsx'
import VisibleTodoList from '../containers/VisibleTodoList/index.jsx'
Run Code Online (Sandbox Code Playgroud)
希望这可能会有所帮助
I met this problem with typescript but forgot to add ts and tsx suffix to resolve entry.
module.exports = {
...
resolve: {
extensions: ['.js', '.jsx', '.ts', '.tsx'],
},
};
Run Code Online (Sandbox Code Playgroud)
This does the job for me
您必须在 webpack.config.js 中使用以下代码来指示 webpack 解析源代码
module.exports={
...
resolve:{
extensions:['.js','.jsx'];
}
}
Run Code Online (Sandbox Code Playgroud)
更新:有一个新的构建工具“Vite”,旨在为现代 Web 项目提供更快、更精简的开发体验。它是一个即插即用工具,需要很少的配置。
刚刚遇到这个...我有一个在多个转译产品之间共享的公共库。我使用符号链接和早午餐来处理项目之间的共享。当迁移到 webpack 时,这不再起作用。
真正起作用的是使用 webpack 配置来关闭符号链接解析。
即添加这个webpack.config.js:
module.exports = {
//...
resolve: {
symlinks: false
}
};
Run Code Online (Sandbox Code Playgroud)
如此处记录的:
https://webpack.js.org/configuration/resolve/#resolvesymlinks
| 归档时间: |
|
| 查看次数: |
47102 次 |
| 最近记录: |